我想在我的应用程序中嵌入一个Youtube视频。但是通常的技术是,在UIWebView中嵌入Youtube视频,当用户点击后,它会自动启动MPMoviePlayerController。但这会全屏幕播放。如何在MPMoviePlayerController中播放此Youtube视频,而不进入全屏模式。我希望将其显示在屏幕的一半。
我想在我的应用程序中嵌入一个Youtube视频。但是通常的技术是,在UIWebView中嵌入Youtube视频,当用户点击后,它会自动启动MPMoviePlayerController。但这会全屏幕播放。如何在MPMoviePlayerController中播放此Youtube视频,而不进入全屏模式。我希望将其显示在屏幕的一半。
videoView.allowsInlineMediaPlayback = YES;
最简单、最粗暴的方式是禁用控件,方法如下:
注意:添加
controls: 0
const player = new YT.Player("player", {
width: "100%",
height: "50%",
videoId: "[your video id]",
playerVars: {
controls: 0,
rel: 0,
modestbranding: 1,
html5: 1,
showinfo: 0,
},
});
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>;
&playsinline=1
(或在JavaScript中的情况下在playerVars
内部添加playsinline:1
)即可。在这种情况下,用户仍然可以全屏观看,但播放器应在您视图的边框内正常启动。希望这可以帮到你。我正在使用一个被定义为YTPlayerView
的UIView来播放视频。
我按照此教程进行操作:在YouTube中嵌入视频的教程
我创建了一个字典,然后将其添加到videoId定义中(即我要播放哪个视频)。
来自YouTube教程:
用以下代码替换
loadWithVideoId
调用:
OBJECTIVE-C
NSDictionary *playerVars = @{
@"playsinline" : @YES,
};
[self.playerView loadWithVideoId:@"M7lc1UVf-VE" playerVars:playerVars];
Swift 2.1:
var playerVars = ["playsinline" : 1]
videoId.loadWithVideoId(["videoId"], playerVars: playerVars)
allowsinlinemediaplayback
,但这个功能在iPad上可用,在iPhone上不适用。如果您尝试在iPhone上使用UIWebView播放视频,它将以全屏模式播放。将视频包装在HTML5文件中,并在<video>
标签的属性中添加webkit-playsinline
。然后设置webView.allowsInlineMediaPlayback = YES;
对我来说这很完美。