我正在使用浏览器应用程序,我希望当用户在youtube.com上搜索任何视频时,该视频正在全屏播放,但我希望该视频在固定大小的小框架中打开,即为手机屏幕大小的一半。
我有视频网址和视频ID。我已经集成了YOUTube API,但是一旦我在youtube播放器上按了播放按钮,它就会全屏播放。
请找到集成的代码库
self.playerView = [[YTPlayerView alloc]init];
self.playerView.frame = webView.frame;
[self.playerView loadWithVideoId:str];
[webView.superview addSubview:self.playerView];
请找截图当添加YouTube播放器,并在播放按钮后,自来水
帮助将不胜感激。
您的项目是否命名为Controller MainViewController
,该控制器应该存在问题YTPlayerView
,请在您的视图控制器中检查该视图。
在大多数情况下,它不会在您直接在代码中使用的类中定义
在您的代码中搜索问题,我找到了UIWebview的属性,该属性将帮助您内联播放视频 setAllowsInlineMediaPlayback
有了这个,您可以直接在网络视图中播放youtube视频,这是代码示例,可用于播放youtube视频
NSString *strVideoId = @"M7lc1UVf-VE";
NSString *videoURL = [NSString stringWithFormat:@"https://www.youtube.com/embed/%@?feature=player_detailpage&playsinline=1",strVideoId];
NSString* embedHTML = [NSString stringWithFormat:@"\
<html><head>\
<style type=\"text/css\">\
iframe {position:absolute; top:50%%; margin-top:-130px;}\
body {\
background-color: transparent;\
color: white;\
}\
</style>\
</head><body style=\"margin:0\">\
<iframe width=\"100%%\" height=\"240px\" src=\"%@\" frameborder=\"0\"></iframe>\
</body></html>",videoURL];
[self.mainwebview setAllowsInlineMediaPlayback:true];
[self.view addSubview:self.mainwebview];
[self.mainwebview loadHTMLString:embedHTML baseURL:nil];
在此代码中,您可以传递在loadWithVideoId
YTPlayerView中传递的任何视频ID 。
要更改宽度/高度,您可以width=\"100%%\" height=\"240px\"
在iframe的一部分中进行更改
它在iPhone中也对我有用,它看起来像这样:在iPhone中使用iframe youtube播放在iPhone中使用另一个参考setAllowsInlineMediaPlayback
:https : //stackoverflow.com/a/15189889/4557505
屏幕快照中显示的图像看起来像是特定的视频问题。注意此代码不是必需的,YTPlayerView
因此,如果此代码对您YTPlayerView
有用,则可以将其从项目中删除(如果未在其他任何地方使用此代码)
更新一些未播放的视频:我认为此问题与特定的实现方式无关,因为对于我来说,它无法在浏览器中工作(在iFrame中设置了嵌入的网址)或YTPlayerview,
但直到我检查并可能找到为止如您所提到的,在实施中存在一些问题:
是的,所有视频都可以在YTPlayerView上使用。这些视频可以在正常的全屏模式下运行,但不能在嵌入式播放器上运行
如果要在YTPlayerview中实现,可以检查以下代码:
NSString *strVideoId = @"3bMYgo_S0Kc";
self.playerView = [[YTPlayerView alloc]init];
self.playerView.frame = CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height/2);
[self.playerView loadWithVideoId:strVideoId playerVars:@{@"playsinline":@1}];
[_mainwebview addSubview:self.playerView];
[self.mainwebview setAllowsInlineMediaPlayback:true];
[self.view addSubview:self.mainwebview];
在中,loadWithVideoId
我们可以提供内联参数,可以解决全屏问题,这在iPhone上也可能适用
请注意,对于我来说,该视频不适用于YTPlayer或浏览器(嵌入的url),但是根据您的评论,您可以尝试
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句