ios:youtube视频通过自定义按钮静音

时间:2013-07-24 06:30:14

标签: ios video youtube youtube-api

我的应用程序包含一个带有自定义UIButtons的视频来管理视频。 通过使用Youtube iFrame api,我设法在UIWebView中播放youtube视频并隐藏其所有默认控件(全屏,音量等)。 现在我想通过自定义按钮控制视频。 我怎么做? - 全屏UIButton:使视频全屏 - 静音/取消静音按钮:将视频静音/取消静音

从我的其他问题中查看屏幕:

objective-c: play video by removing the default fullscreen, etc functionality

我该如何解决这个问题? UIWebview中的视频代码:

 NSString *htmlString =@"<!DOCTYPE html><html> <body><div id=\"player\"></div><script>var tag = document.createElement('script');tag.src = \"https://www.youtube.com/iframe_api\";var firstScriptTag = document.getElementsByTagName('script')[0];firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);var player;function onYouTubeIframeAPIReady() {player = new YT.Player('player', {height: '196',width: '309',videoId: 'GOiIxqcbzyM',playerVars: {playsinline: 1, controls: 0}, events: {'onReady': onPlayerReady,'onStateChange': onPlayerStateChange}});}function onPlayerReady(event) {event.target.playVideo();}var done = false;function onPlayerStateChange(event) {if (event.data == YT.PlayerState.PLAYING && !done) {setTimeout(stopVideo, 6000);done = true;}}function stopVideo() {}</script></body></html>";
_webViewVideo.delegate = self;

static NSString *youTubeVideoHTML = @"<iframe webkit-playsinline width=\"309\" height=\"200\" src=\"https://www.youtube.com/embed/GOiIxqcbzyM?feature=player_detailpage&playsinline=1\" frameborder=\"0\"></iframe>";
[_webViewVideo loadHTMLString:htmlString baseURL:[[NSBundle mainBundle] resourceURL]];

1 个答案:

答案 0 :(得分:0)

此组合可让视频隐藏控件

NSDictionary *playerVars = @{
                             @"controls" : @0,
                             @"playsinline" : @1,
                             @"autohide" : @1,
                             @"showinfo" : @0,
                             @"modestbranding" : @1,
                             @"rel":@0
                             };

要在按钮单击时全屏显示视频,请尝试保存当前视频已用时间,并通过更改playerVars以显示控件并以编程方式触发全屏按钮操作(视频以全屏播放)以及搜索方法以播放经过时间的视频。

对于静音/取消静音,尝试以编程方式将当前手机音量减小为静音并将其设置为取消静音

我不认为苹果提供api来改变音量。 只有用户才能使用硬件控件