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

How to play youtube video in UIWebView muted?(如何在 UIWebView 中播放 youtube 视频静音?)

本文介绍了如何在 UIWebView 中播放 youtube 视频静音?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 UIWebView 在 iOS 9 for iphone 上播放嵌入的 youtube 视频.

I am using UIWebView to play an embedded youtube video, on iOS 9 for iphone.

但是,由于一个已知问题,音量控制不起作用,即调用 player.mute() 或 player.setVolume(0) 根本不起作用:https://github.com/youtube/youtube-ios-player-helper/问题/20

However, due to a known issue, the volume control is not working, i.e. calling player.mute() or player.setVolume(0) doesn't work at all: https://github.com/youtube/youtube-ios-player-helper/issues/20

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

I am wondering if anyone has successfully worked around this? Could you share your method.

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

The sample embedded html I am using:

    <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>

谢谢!

推荐答案

首先不能使用javascript设置音量检查this doc 并阅读 Volume Control inJavaScript 部分.在这里找到.

First of all you cannot set the volume using javascript check this doc and read Volume Control in JavaScript section. 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];
}

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

This seems to be working fine in simulator. However this method is using some private properties. Use at your own risk ;) and don't forget to remove observer.

这篇关于如何在 UIWebView 中播放 youtube 视频静音?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如何在 UIWebView 中播放 youtube 视频静音?

基础教程推荐