在没有全屏的UIWebView中播放Youtube视频

sle*_*rfx 7 youtube objective-c ios

我想在我的应用程序中浏览一个Youtube视频.但通常的技术是,我们在UIWebView中嵌入了一个YouTube视频,当用户点击时,它会自动在MPMoviePlayerController中启动.但这将全屏启动.如何在MPMoviePlayerController中播放此YouTube视频而无需全屏播放.我想在屏幕的一半显示这个.

Sas*_*sho 6

有几种方法可以做到这一点.

除了设置

videoView.allowsInlineMediaPlayback = YES;
Run Code Online (Sandbox Code Playgroud)

最简单和最脏的方法是禁用这样的控件:

一个)

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 
        }
Run Code Online (Sandbox Code Playgroud)

...

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>
Run Code Online (Sandbox Code Playgroud)

...

B)

你只需要添加&playsinline=1(或者playsinline:1在下面的Javascript案例中playerVars)此案例用户仍然可以全屏显示,但播放器应该在视图的边框中正常启动.

我希望这有帮助.

  • 你有任何有用的例子吗?这将是一个很大的帮助 (2认同)

Luk*_*ivi 6

我正在使用UIView,它被定义为YTPlayerView播放视频.

我按照本教程:YouTube教程嵌入视频

我创建了一本字典.然后我将它添加到videoId定义(我正在播放的视频).

来自YouTube教程:

loadWithVideoId用以下代码替换:call:

Objective-C的

 NSDictionary *playerVars = @{
   @"playsinline" : @YES,
 };

[self.playerView loadWithVideoId:@"M7lc1UVf-VE" playerVars:playerVars];
Run Code Online (Sandbox Code Playgroud)

Swift 2.1:

   var playerVars = ["playsinline" : 1]

   videoId.loadWithVideoId(["videoId"], playerVars: playerVars)
Run Code Online (Sandbox Code Playgroud)

这将在尝试播放视频时禁用全屏,并且还允许用户在需要时全屏显示.

希望能帮助别人.


bit*_*com 4

您设置allowedinlinemediaplayback。但iPad上有这个功能。在 iPhone 中不适用。如果您尝试在 iPhone 上使用 uiwebview 播放视频,它将以全屏模式播放。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/Reference/Reference.html

在此输入图像描述