mute/unmute issues

1,435 views
Skip to first unread message

Natalie Gabel

unread,
Nov 6, 2016, 6:34:52 AM11/6/16
to Interactive Media Ads SDK

Hi, I am running instream ad inside google IMA player and It seems that there are few problems:


I understood that you are going to fix the issue that muted and volume properties of the video slot are undefined . Do you have time estimation when it will be released?


The state of the mute button of the player is not synchronized with the audio

Scenario 1
a. Open the following URL - https://developers.google.com/interactive-media-ads/docs/sdks/html5/vastinspector?hl=iw&tag=https%253A%252F%252Fbs.serving-sys.com%252FServing%252FadServer.bs%253Fc%253D23%2526cn%253Ddisplay%2526pli%253D1074012602%2526ord%253D%255Btimestamp
b. click on Test ad (relevant for both secure and insecure mode)
c. Click on Audio off -> behave as it should: video is muted and mute button of the player is in state mute (UI: X is displayed)
d. Click on Audio on -> video is unmuted but state of the mute button of the player is not changed

Scenario 2
in our code we check if we have value of volume from video. if not (like in IMA secure case) our default is 1 and we dispatch AdVolumeChange event to the player.
Therefore, I expect the video to start unmuted and that the mute button of the player will be in unmute state, even if user set it before to muted (unless setAdVolume is sent which is not the case)
Steps to reproduce:
a. Open the following URL - https://developers.google.com/interactive-media-ads/docs/sdks/html5/vastinspector?hl=iw&tag=https%253A%252F%252Fbs.serving-sys.com%252FServing%252FadServer.bs%253Fc%253D23%2526cn%253Ddisplay%2526pli%253D1074012602%2526ord%253D%255Btimestamp
b. choose secure mode
c. mute the player button (so in UI will be X)
d. click on Test Ad
e. expected result: video unmuted + mute btn in state unmuted. Actual result: video unmuted + mute btn is state mute

Scenario 3
Getting wrong values in insecure mode when state of the mute button of the player is muted.
In insecure mode when setting the mute button of the player to muted I expect to get in the video slot muted true and instead I get videoSlot.volume - 1 and videoSlot.muted - false.
As a result the video starts unmuted even though I expect it to start muted

I think that as result of these issues when toggling the mute button of the player I get wrong behavior.


One more issue on Ipad the audio is not changed when needed. clicking mute/unmute doesn't affect the audio even when we dispatch event adVolumechange. I see that you call setAdVolume and getAdVolume but it doesn't work.


If you need more information please let me know

Vu Chau (IMA SDK Team)

unread,
Nov 7, 2016, 11:18:16 AM11/7/16
to Interactive Media Ads SDK
Hi Natalie,

Thanks for following up on this! The team is still investigating the issues - we will let you know when we have an update.

Vu Chau
IMA SDK Team

Natalie Gabel

unread,
Nov 10, 2016, 2:38:33 AM11/10/16
to Interactive Media Ads SDK
Thanks a lot. Waiting for your updates.
For the case that muted and volume are undefined that in former mails I understood that you are currently working for a fix - do you have time estimation? We have users that it is urgent to them and I need to know what we should tell them

Vu Chau (IMA SDK Team)

unread,
Nov 10, 2016, 11:07:53 AM11/10/16
to Interactive Media Ads SDK
Hi Natalie,

For the case that muted and volume are undefined...

Is this the same issue that you reported in one of the three scenarios previously? We are still investigating this as a whole, and don't have a timeline yet.  I'll check back with the rest of the team for updates.

Vu
Message has been deleted
Message has been deleted

Vu Chau (IMA SDK Team)

unread,
Dec 13, 2016, 4:55:39 PM12/13/16
to Interactive Media Ads SDK
Hi Natalie,

Thanks for following up on this. Let me break it down:

Scenario 1: If the UI of the volume control icon doesn't sync with the volume of the ad, since your video player owns this, our recommendation is that it set the CSS of the volume icon accordingly. For example, when the ad is un-muted, your implementation should receive an event for this. From there, the CSS can be flipped programmatically.

The same recommendation can also be applied to Scenario 2.

Scenario 3: Instead of calling setVolume(0) early, I'd delay the call a little bit until after the SDK has received the VAST and known what type of ad it is. Some VPAID ads come with their own volume logic, which can override the SDK's if you have previously set the volume. Therefore, I'd wait until either the LOAD or STARTED event, and then call setVolume(0) on your adsManager instance. 

Let me know if you have steps for reproducing the iPad scenario.

No ETA as of yet, since we are approaching the annual SDK code freeze. I will let you know as soon as the team deploys the fix.

Vu Chau
IMA SDK Team

Natalie Gabel

unread,
Dec 18, 2016, 2:49:46 PM12/18/16
to Interactive Media Ads SDK
Hi,
thx for teh reply but I am not sure I understand.

In scenario 1 and 2  - when I wrote mute button of the player I didn't meant creative mute button but the player button. the one in the control bar. How we can control it? we don't have any API to that button. Only the player can control it. 

Also in scenario 3 I meant when I set to mute the button of the player (not by code) -> before the ad plays I set the mute button in the control bar to state mute and then click on Test ad. In this scenario when the mode is insecure I expect the properties of the video to be muted true but I get muted false.

Regarding Ipad the steps are as follows:
c. Click on Audio off and video on -> audio is not changed

Thanks 

Vu Chau (IMA SDK Team)

unread,
Dec 19, 2016, 11:22:34 AM12/19/16
to Interactive Media Ads SDK
Hi Natalie,

Thanks for clarifying! I previously assumed you were in control of the video player rather than the creative. Still, are you detecting the player's mute (or volume change) event by any chance? I suppose that when a user changes the volume via the player's UI, the player will dispatch an event with a numeric value. Based on this event, you can manually call setVolume() on the adsManager from within your VPAID's script. I understand that not all video players expose such an API, but it can be a good starting point until the official bug fix.

Scenario 3 should be similar. If you know (via the player's API) that the volume is muted prior to ad playback, when the IMA SDK is going to play the ad (under the LOAD/STARTED event), you can call setVolume(0) at this point so that the ad will play muted. In my previous response, I was trying to say that if you set the volume to 0 too early before the ad is even loaded, by the time it is loaded, if it is a VPAID ad, the SDK will instantiate a different adsManager for it. So any previous setVolume() logic would be lost.

Vu Chau
IMA SDK Team

Natalie Gabel

unread,
Dec 27, 2016, 1:27:00 AM12/27/16
to Interactive Media Ads SDK
Hi,

I think you still misunderstood.In the scenarios 1 & 2 user didn't click on the player button. He clicked on the creative buttons. After clicking the creative buttons VPAID script (our code) detect it, update volume of video slot and our property of volume and send to player adVolumeChange event. Player receive this value since he call to getAdVolume and get the correct value and audio is OK. what is not OK is the player mute/unmute button which is not sync with the change.

VPAID doesn't have any API to control the player button and since the audio is OK I don't understand how there is something that we can do. all the API between player and VPAID according IAB don't include something for changing state of player button. regarding audio we call adVolumeChange when necessary, otherwise we would have problems with the audio.

In scenario 3 I (VPAID script) can't know that creative click of player mute/unmute button. We can detect clicking on creative but not player buttons. I will describe the flow in this scenario between player and VPAID script: 
1. creative in insecure mode click on mute button of the player before the ad starts. VPAID can't know it - I believe player knows since it is his button no?
2. VPAID code checks the mute and volume values from the video slot and updates all the relevant properties. values are volume - 1 and muted false -> not the correct values. I expect it to be muted true
3. VPAID send adVolumeChange event 
4. player call to gerAdVolume and get the incorrect data since the values we got from the video slot are not correct
in this flow there is no call from player to setAdVolume to change the volume to 0. I expect that or video slot be updated with correct values or player calls setAdVolume to update the value

Regarding IOS  I'll describe also the flow in the code so it will be more clear:
1.Since it is secure mode and VPAID get volume and muted undefine from the video slot VPAID set default value to 1 (we decided that in case values are undefined the default will be 1)
2. VPAID dispatch adVolumeChange event to notify the player our decision
3. player call to getAdVolume and receive value 1
4. user call on mute button of the ad (not the player) 
5. VPAID detects it and update video slot with volume 0 and update all the relevant properties and send adVolumeChange event
6. player call to getAdVolume and receive value 0
7. player call to setAdVolume with 1 -> why???? this cause us to play also with sound and ignore the user request to mute the video

we discovered one more issue that when using secure mode the video slot is not listening to the events of the video. for example when we change volume and muted properties of the video slot I expect that volume change event of the video element will be dispatched and it doesn't happen.

Hope to hear for you 
Thanks
Reply all
Reply to author
Forward
0 new messages