【问题标题】:iOS7 UIWebivew Youtube MPMediaPlayer not workingiOS7 UIWebivew Youtube MPMediaPlayer 不工作
【发布时间】:2013-09-25 11:10:07
【问题描述】:

我需要在来自 youtube 的 UIWebiview 中播放视频。 在旧设备上一切正常 (5.1+)

很遗憾,iOS7 上的视频无法播放。它开始 loading 但它永远不会开始播放。即使视频已完全加载。只有当您手动停止并按下播放时,视频才会开始播放。

这里有一些代码:

- (void)viewDidAppear:(BOOL)animated;
{
    [super viewDidAppear:animated];
    if(!self.viewMoviePlayerView.superview) {
        [self.viewMediaContentContainer addSubview:self.viewMoviePlayerView];
    }
    self.viewMoviePlayerView.isScrollingEnabled = NO;

    [self.viewMoviePlayerView loadRequest:[NSURLRequest requestWithURL:
                           [NSURL URLWithString:
                           [NSString stringWithFormat:@"%@%@", @"http://www.youtube.com/embed/", self.currentSelectedItem.guid]]]];
...
}

对此有何建议?

【问题讨论】:

    标签: uiwebview youtube mpmovieplayercontroller ios7


    【解决方案1】:

    在最新版本的 iOS 上不允许自动播放。您不应该以编程方式开始下载可能给用户带来成本的数据。我找到了一种方法,但有点棘手:

    • 显示一个 html 字符串而不是一个 url

      [webview loadHTMLString:<html> baseURL:[[NSBundle mainBundle] resourceURL]];
      
    • html需要是嵌入播放器:

      <html>
      <body style='margin:0px;padding:0px;'>
        <script type='text/javascript' src="http://www.youtube.com/iframe_api"></script>
        <script type='text/javascript'>
           function onYouTubeIframeAPIReady(){
              ytplayer=new YT.Player('playerID',{events:{onReady:onPlayerReady, onStateChange:onPlayerStateChange}});
           }
        function onPlayerReady(a){ a.target.playVideo(); }
        function onPlayerStateChange(event) {
           if (event.data == YT.PlayerState.BUFFERING) {
              event.target.playVideo();
           }
        }
        </script>
        <iframe id='playerID' type='text/html' width='320' height='240'
           src="http://www.youtube.com/embed/xxxxxxxxxxx?enablejsapi=1&rel=0&playsinline=1&autoplay=1" frameborder='0'></iframe>
      </body>
      </html>
      

      这很好用,因为 iframe API 中的 javascript 会强制播放器在加载后开始播放,并且每次开始缓冲时。我强烈建议你read about the youtube API

    • 将您的视频 ID 放入嵌入中即可!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多