ios - 如何在 AVPlayer 中显示 AdMob 横幅?

标签 ios swift admob overlay avplayer

我正在开发一款观看直播的应用。它基于表格 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/

相关文章:

ios - AdMob 原生高级广告单元 ID

ios - MFMailComposer 在使用 Swift 的 iOS 8 上崩溃

ios - 自定义 TableView 单元格出列 fatal error : unexpectedly found nil

swift - 使用带有 getter 和 setter 的类或结构来计算关系的属性

swift - 如何在 Swift 中创建高阶函数?

ios - 每次回到欧盟都会弹出 Admob GDPR 同意对话框?

ios - 是否可以使用 libgdx 为 IOS 添加排行榜?

iOS,如何重启NSThread?

ios - 通过另一个 vc 解决方案传递值

android - 升级到新的 Admob 问题