【发布时间】:2013-01-27 09:05:48
【问题描述】:
我想在我的应用中嵌入一个 Youtube 视频。但通常的技术是,我们在 UIWebView 中嵌入一个 youtube 视频,当用户点击时,它会自动在 MPMoviePlayerController 中启动。但这会全屏启动。如何在不全屏的情况下在 MPMoviePlayerController 中播放此 youtube 视频。我想把它显示在屏幕的一半。
【问题讨论】:
标签: ios objective-c youtube
我想在我的应用中嵌入一个 Youtube 视频。但通常的技术是,我们在 UIWebView 中嵌入一个 youtube 视频,当用户点击时,它会自动在 MPMoviePlayerController 中启动。但这会全屏启动。如何在不全屏的情况下在 MPMoviePlayerController 中播放此 youtube 视频。我想把它显示在屏幕的一半。
【问题讨论】:
标签: ios objective-c 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>;
您只需在playerVars 内添加&playsinline=1(或playsinline:1 在Javascript 案例中的下一个playerVars)
在这种情况下,用户仍然可以全屏播放,但播放器应该在您的视图边界正常启动。
我希望这会有所帮助。
【讨论】:
我正在使用定义为YTPlayerView 的 UIView 来播放视频。
我遵循了这个教程:YouTube Tutorial to Embed Video
我创建了一本字典。然后我将它添加到 videoId 定义中(我正在播放的视频)。
来自 YouTube 教程:
替换
loadWithVideoId: 调用此代码:
目标-C
NSDictionary *playerVars = @{
@"playsinline" : @YES,
};
[self.playerView loadWithVideoId:@"M7lc1UVf-VE" playerVars:playerVars];
斯威夫特 2.1:
var playerVars = ["playsinline" : 1]
videoId.loadWithVideoId(["videoId"], playerVars: playerVars)
这将在尝试播放视频时禁用全屏,并且还允许用户根据需要进入全屏。
希望对某人有所帮助。
【讨论】:
您设置了 allowsinlinemediaplayback。但这个功能在 iPad 上。在 iPhone 中不适用。如果您尝试在 iPhone 上使用 uiwebview 播放视频,它将以全屏模式播放。
【讨论】:
将视频包装在html5文件中,并在<video>标签的属性中添加webkit-playsinline。然后设置webView.allowsInlineMediaPlayback = YES; 这对我来说非常适合。
【讨论】: