显示广告时,Android上的声音会消失

时间:2015-12-21 22:17:24

标签: android audio unity3d

当我的角色越过终点线时,我会发出“胜利”的声音。我有一个 AudioSource 对象,我只需将其称为 PlayOneShot ,然后将其传递给 AudioClip

public void PlayWon() {
    if (GameData.Data.Settings.SoundsOn) {
        AudioSource audio = GetComponent<AudioSource>();
        audio.Stop();
        audio.PlayOneShot(WinSound);
    }
}

我对 AudioSource 的设置如下:

enter image description here

和附加到它的对象被加载到一个永不被破坏的 Loader 场景中。我通过致电确认这一点:

DontDestroyOnLoad(this);

在清醒时。

我的声音在iOS,iPhone和iPad上播放得很好。但是当我在三星Galaxy Tab S上进行测试时,声音播放然后暂停,同时显示插页式广告,然后当解散时,声音继续播放。我正在使用Chartboost和Admob并使用基本调用:

    if (Chartboost.hasInterstitial(CBLocation.LevelComplete)) {
        Debug.Log("Showing CB Ad");
        Chartboost.showInterstitial(CBLocation.LevelComplete);
    }
    else if (_admobInterstitial.IsLoaded()) {
        Debug.Log("Showing Admob Ad");
        _admobInterstitial.Show();
    }
    else {
        Debug.Log("Neither cached, trying CB again");
        Chartboost.cacheInterstitial(CBLocation.LevelComplete);
        Chartboost.showInterstitial(CBLocation.LevelComplete);
    }

为什么我的声音会在这个设备上消失?我没有其他Android设备来测试它,但我认为这是一个与Android相关的问题。 Chartboost和Admob的声音都消失了。

由于

1 个答案:

答案 0 :(得分:3)

您可以使用协程播放声音。协程完成后,您可以展示广告。

private IEnumerator PlaySoundAndShowAd()
{
  //play sound
  yield return new WaitForSeconds(1.0f)
  //show ads or do something.
}