在iOS8上(重新)缓冲时未激发Youtube didChangeToState

在iOS8上(重新)缓冲时未激发Youtube didChangeToState,ios,iframe,youtube-api,Ios,Iframe,Youtube Api,我想检测在使用YouTube的iOS库(构建在iFrame之上)播放YouTube视频时,何时发生拒绝(即视频开始播放时发生缓冲)。我已经按照说明()说明了如何配置和启动视频。在运行iOS 9的iPhone上,一切正常,但在运行iOS 8的iPhone上运行相同的代码时,方法didChangeToState的状态为YTPlayerState。从未调用缓冲(在调用YTPlayerState.Playing之后),尽管视频有时明显会被拒绝 有一个报告的问题与iFrame库直接在UIWebView中使

我想检测在使用YouTube的iOS库(构建在iFrame之上)播放YouTube视频时,何时发生拒绝(即视频开始播放时发生缓冲)。我已经按照说明()说明了如何配置和启动视频。在运行iOS 9的iPhone上,一切正常,但在运行iOS 8的iPhone上运行相同的代码时,方法didChangeToState的状态为YTPlayerState。从未调用缓冲(在调用YTPlayerState.Playing之后),尽管视频有时明显会被拒绝

有一个报告的问题与iFrame库直接在UIWebView中使用的行为大致相同:
我猜我的问题和这个有关

有没有办法通过YouTube的iOS库检测iOS 8上的拒绝?

我使用以下代码来检测拒绝:

class ViewController: UIViewController {

    @IBOutlet weak var playerView: YTPlayerView!

    override func viewDidLoad() {
        super.viewDidLoad()

        print("View did load")
        playerView.delegate = self

        let playerVars: [NSObject: AnyObject] = ["playsinline":1] // Plays the video in the UIView instead of fullscreen. To programmatically control playback.
        playerView.loadWithVideoId("M7lc1UVf-VE", playerVars: playerVars)
    }
}

extension ViewController: YTPlayerViewDelegate {

    // MARK: YTPlayerViewDelegate

    func playerView(playerView: YTPlayerView!, didChangeToState state: YTPlayerState) {
        switch state {
        case .Buffering:
            print("Buffering")
            break
        case .Ended:
            print("Ended")
            break
        case .Paused:
            print("Paused")
            break
        case .Playing:
            print("Playing")
            break
        case .Queued:
            print("Queued")
            break
        case .Unknown:
            print("Unknown")
            break
        case .Unstarted:
            print("Unstarted")
            break
        }
    }

    func playerView(playerView: YTPlayerView!, receivedError error: YTPlayerError) {
        print("Error: " + "\(error)")
    }

    func playerViewDidBecomeReady(playerView: YTPlayerView!) {
        print("Player did become ready")
        self.playerView!.playVideo()
    }
}
在低带宽的网络上,我从配备iOS 9的iPhone上获得以下输出(以斜体显示):
视图未加载
玩家确实准备好了
缓冲
播放
缓冲
播放
.
.
.
缓冲
播放
结束

另一方面,在iOS 8上,输出仅(与带宽无关):
视图未加载
玩家确实准备好了
缓冲
播放

结束

您应该在YTPlayerView的官方GitHub回购协议上打开一个问题:谢谢@JAL!已按照您的建议提交一份已签发的文件: