如何在UIWebView中播放youtube视频静音?

时间:2016-05-18 04:06:00

标签: ios iphone youtube uiwebview

我正在使用UIWebView在iOS 9 for iphone上播放嵌入式YouTube视频。

但是,由于已知问题,音量控制无效,即调用player.mute()或者player.setVolume(0)根本不起作用: documentation

我想知道是否有人成功地解决了这个问题?你能分享一下你的方法吗?

我正在使用的示例嵌入式html:

    <html><body style='margin:0px;padding:0px;'>  
    <script type='text/javascript' src='http://www.youtube.com/iframe_api'></script><script type='text/javascript'>
    var player;
    function onYouTubeIframeAPIReady()
    {player=new YT.Player('playerId',{events:{onReady:onPlayerReady}})}
    function onPlayerReady(event){player.mute();player.setVolume(0);player.playVideo();}
    </script>
    <iframe id='playerId' type='text/html' width='1280' height='720' 
src='https://www.youtube.com/embed/R52bof3tvZs?enablejsapi=1&rel=0&playsinline=1&autoplay=1&showinfo=0&autohide=1&controls=0&modestbranding=1' frameborder='0'>
    </body></html>

谢谢!

1 个答案:

答案 0 :(得分:3)

首先,您无法使用javascript check this doc和阅读Volume Control in JavaScript部分来设置音量。 Found here

其次我试过这个:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(playerItemBecameCurrentNotif:)
                                             name:@"AVPlayerItemBecameCurrentNotification"
                                           object:nil];


- (void)playerItemBecameCurrentNotif:(NSNotification*)notification {
    AVPlayerItem *playerItem = notif.object;
    AVPlayer *player = [playerItem valueForKey:@"player"];
    [player setVolume:0.0];
}

这似乎在模拟器中运行良好。但是,此方法使用一些私有属性。使用风险;)并且不要忘记删除观察者。