我想在我的应用中看到Youtube视频。但通常的技术是,我们在UIWebView中嵌入了一个YouTube视频,当用户点击时,它会自动在MPMoviePlayerController中启动。但这将全屏启动。如何在MPMoviePlayerController中播放此YouTube视频而无需全屏播放。我想在屏幕的一半显示这个。
答案 0 :(得分:6)
有几种方法可以做到这一点。
除了设置
videoView.allowsInlineMediaPlayback = YES;
最简单和最脏的方法是禁用这样的控件:
<强> A)强>
v1) Javascript代码(注意controls:0
):
...
player = new YT.Player('player',
{ width:'100%', height:'50%', videoId:'[your video id]',
playerVars: {
controls:0,
rel:0, modestbranding:1, html5:1, showinfo:0
}
...
v2) HTML嵌入iFrame代码(请注意&controls=0
和/或&playsinline=1
):
...
<iframe id="ytplayer" type="text/html" width="100%" src="http://www.youtube.com/[your_video_id]?autoplay=1&controls=0&playsinline=1&modestbranding=1&rel=0&showinfo=0&autohide=1&html5=1" webkit-playsinline frameborder="0"></iframe>
...
B)
您只需在&playsinline=1
内的Javascript案例中添加playsinline:1
(或playerVars
)
此案例用户仍然可以全屏显示,但播放器应该在视图的边框中正常启动。
我希望这会有所帮助。
答案 1 :(得分:5)
我正在使用UIView定义为YTPlayerView
来播放视频。
我遵循了本教程:YouTube Tutorial to Embed Video
我创建了一本字典。然后我将它添加到videoId定义(我正在播放的视频)。
来自YouTube教程:
使用以下代码替换
loadWithVideoId
:来电:
<强>目的-C 强>
NSDictionary *playerVars = @{
@"playsinline" : @YES,
};
[self.playerView loadWithVideoId:@"M7lc1UVf-VE" playerVars:playerVars];
Swift 2.1:
var playerVars = ["playsinline" : 1]
videoId.loadWithVideoId(["videoId"], playerVars: playerVars)
这将在尝试播放视频时禁用全屏,并且还允许用户在需要时全屏显示。
希望能有所帮助。
答案 2 :(得分:2)
您设置 allowinlinemediaplayback 。但这个功能在iPad上。在iPhone中不适用。如果您尝试在iPhone上使用uiwebview播放视频,它将以全屏模式播放。
答案 3 :(得分:2)
将视频换入html5文件,并在webkit-playsinline
标记的属性中添加<video>
。然后设置webView.allowsInlineMediaPlayback = YES;
这对我来说非常适合。
答案 4 :(得分:0)