2016-06-21 50 views
0

我有一個音樂流媒體應用程序,我使用鎖定屏幕控件播放/暫停/下一首歌曲。iOS Admob廣告開始播放鎖屏按鈕 - BUG?

我在我的應用程序中有Admob插頁式廣告。

但是,當我使用鎖定屏幕控件時,它也會傳遞給視頻廣告,因爲視頻廣告會隨着我的應用的音樂開始播放。有什麼辦法可以防止這種情況發生?

下面是我如何處理鎖屏控件。我不與廣告在此代碼的任何互動,但仍控制被傳遞到AdMob的視頻播放器:

- (void)remoteControlReceivedWithEvent:(UIEvent *)event { 

    ////NSLog(@"CustomApp:remoteControlReceivedWithEvent:%@", event.description); 
    if (event.type == UIEventTypeRemoteControl) 
    { 
     switch (event.subtype) 
     { 
      case UIEventSubtypeRemoteControlPlay: 
       // play the video 
       dispatch_async(dispatch_get_main_queue(), ^{ 
        [[[SoundEngine sharedInstance] audioPlayer] resume]; 
        //[[SoundEngine sharedInstance] setLockScreenElapsedTime]; 
       }); 

       break; 

      case UIEventSubtypeRemoteControlPause: 
       // pause the video 
       dispatch_async(dispatch_get_main_queue(), ^{ 
        [[[SoundEngine sharedInstance] audioPlayer] pause]; 
        //[[SoundEngine sharedInstance] setLockScreenElapsedTime]; 
       }); 

       break; 

      case UIEventSubtypeRemoteControlNextTrack: 
       // to change the video 
       dispatch_async(dispatch_get_main_queue(), ^{ 
        [[SoundEngine sharedInstance] nextClicked]; 
        //[[SoundEngine sharedInstance] setLockScreenElapsedTime]; 
       }); 

       break; 

      case UIEventSubtypeRemoteControlPreviousTrack: 
       // to play the privious video 
       dispatch_async(dispatch_get_main_queue(), ^{ 
        [[SoundEngine sharedInstance] prevClicked]; 
        //[[SoundEngine sharedInstance] setLockScreenElapsedTime]; 
       }); 

       break; 

      default: 
       break; 
     } 
    } 
} 
+1

爲什麼不在應用程序在後臺時禁用admob? – Paulw11

+0

你是什麼意思禁用admob?基本上不是這個概念,當我準備好時,我使用「presentFromRootViewController」方法來實際呈現它?否則廣告在後臺保持準備就緒狀態。 –

+1

您的視圖層次結構中必須有一個活動的視頻播放器正在接收事件 – Paulw11

回答

0

我最近也遇到了AdMob插頁式視頻廣告播放後我打電話給負載,而沒有調用當下。另外,當我出示廣告時,切換靜音開關不起作用。
AdMob SDK的版本是7.19.1和7.20.0。

最終我認定它是一個AdMob問題,但它並不那麼明顯。導致錯誤的部分是爲UserDefauts註冊UserAgent。特別是以下幾行導致問題。

let userAgent : String = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9" 
UserDefaults.standard.register(defaults: ["UserAgent" : userAgent]) 

AdMob在加載廣告時可能會觸及存儲在UserDefaults中的用戶代理。不過,我絕對需要這個自定義用戶代理,所以我仍然不確定我能做什麼,但至少我們知道AdMob SDK在這種情況下如何讓我們失敗。

+0

而不是在Userdefaults中設置User-Agent,爲什麼不按每個請求的標題設置? –

+0

在WKWebView上的@PranoyC它曾經是請求的用戶代理被UserDefaults中的內容覆蓋,但是在iOS 10中似乎通過使用customUserAgent來處理。 – ykonda