我正在开发一款观看直播的应用。它基于表格 View ,我想通过广告免费提供它(有机会通过应用内购买购买“专业版”)。我设法在表格 View 中插入 AdMob 横幅,但我也想在视频流中插入小横幅。我使用 AVPlayer 来显示流,我知道有一个名为 contentOverlayView 的方法允许插入一个自定义 View ,该 View 在播放视频时保持可见,所以我想我必须使用该方法来显示此横幅,但我无法到。下面的代码设置了播放器并且它运行良好,但是我添加的用于显示横幅的代码似乎完全没用(我仍然可以完美地看到视频,但没有显示横幅):
func allestisciPlayer(indexPath: IndexPath, destinazione: AVPlayerViewController) {
// Ricava il canale corretto per mezzo della funzione apposita
let canaleSelezionato = ritornaIlCanaleCorretto(indexPath: indexPath)
// Prende il percorso giusto per lo streaming, poi crea il player nella destinazione
let url = URL(string: canaleSelezionato.urlCanale)
if let streamingURL = url {
destinazione.player = AVPlayer(url: streamingURL)
// Il do-try-catch seguente serve per far funzionare l'audio dell'app anche se l'iPhone è in modalità silenziosa; togli il blocco per fare in modo che l'app non produca audio se l'iPhone è in modalità silenziosa
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
} catch {
print("Errore: non riesco a riprodurre l'audio se iPhone è in modalità silenziosa.")
}
let bannerView = GADBannerView()
bannerView.adUnitID = "ca-app-pub-xxxx/xxxx"
bannerView.rootViewController = self
let request = GADRequest()
request.testDevices = ["xxxx"]
bannerView.load(request)
bannerView.bounds = CGRect(x: 0, y: 0, width: 320, height: 50)
destinazione.contentOverlayView?.addSubview(bannerView)
// Infine avvia il player
destinazione.player?.play()
}
}
我哪里错了?我还尝试在 prepareForSegue 方法中使用此代码,甚至通过覆盖 AVPlayerViewController 的 viewDidLoad 方法,但仍然没有成功......有人可以帮助我吗?
编辑:我发现这并不难 :) 我只是创建一个新横幅(不同于 TableView 中的现有横幅)并通过创建另一个 UIView 来显示它,添加横幅作为这个新 View 的 subview ,最后将新 View 作为 subview 添加到我的 AVPlayerViewController。我没有设法使用 contentOverlayView 方法显示横幅,但我在某处读到,即使我能够使用它显示广告,我也无法点击它,因为 contentOverlayView 内容禁用了用户触摸。无论如何谢谢你:)
最佳答案
这不是初始化广告的正确方法。您应该在 appdelegate 中对其进行初始化,然后您应该能够在任何您想要的地方自由显示广告。
关于ios - 如何在 AVPlayer 中显示 AdMob 横幅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41029081/