从嵌入UIWebView的YouTube视频中删除洗涤器和时间戳



我正在制作的应用程序中有一个YouTubeView,我正在尝试禁用一些正在出现的视频控件,我看到另一个应用程序这样做,它只显示播放/暂停和全屏图标。我正在渲染的一些视频非常小(200x150),所以洗涤器没有用,时间实际上是重叠的。

我使用的功能是:

- (YouTubeView *)initWithStringAsYouTubeId:(NSString *)idString frame:(CGRect)frame;
{
    if (self = [super init]) 
    {
        self.frame = frame;
        self.delegate = self;
        // HTML to embed YouTube video
        NSString *embedHTML = @"
        <html><head>
        <style type="text/css">
        body {
        background-color: transparent;
        color: transparent;
        }
        </style>
        </head><body style="margin:0">
        <embed id="yt" src="http://www.youtube.com/v/%@" type="application/x-shockwave-flash" 
        width="%0.0f" height="%0.0f"></embed>
        </body></html>";
        // Populate HTML with the URL and requested frame size
        NSLog(@"%f", frame.size.height);
        NSString *html = [NSString stringWithFormat:embedHTML, idString, frame.size.width, (frame.size.height*-1.0f)];
        // Load the html into the webview
        [self loadHTMLString:html baseURL:nil];
    }
    return self;  
}

它加载和播放都很好,但我只想禁用洗涤器和次数,我试过了吗?controls=0,运气不佳。

干杯,Dean

要隐藏洗涤器和其他控件,请删除<embed>标记,并将其替换为等效的<iframe>标记,如下所示(我使用示例代码中的参数/属性设置了它):

<iframe id="yt" type="text/html" src="http://www.youtube.com/embed/%@?controls=0" width="%0.0f" height="%0.0f" frameborder="0"></iframe>

<iframe>一起使用的'controls=0'将为您隐藏控件。

在我使用iOS嵌入式视频的短暂经验中,它似乎是一个问题的解决方案,而以前运行良好的其他问题往往会引起悲伤。举个例子:上面的例子隐藏了控件,但会将视频的标题覆盖在UIWebView的左上角。解决方案是将其用于视频的参数列表:'?controls=0&showinfo=0'

要查看"showinfo"参数和其他参数的独家新闻,请查看以下文档:https://developers.google.com/youtube/player_parameters#Parameters并不是参数文档中的所有内容都能在iOS <iframe>中工作,但如果你试着使用其中的一些,你可能会发现一些有用的东西。

就其价值而言(这对专业的网络程序员来说可能是显而易见的,但我不是),你不必将"id"属性指定为"yt",但我看到的大多数例子都是这样做的yt没有神奇的价值,你可以把id设置为任何对你有意义的东西。

不使用MPMoviePlayerController有什么原因吗?

使用MPMoviePlayerController,你只需在你的笔尖中创建一个UIView,它是你想要的播放器大小。然后分配/初始化播放器,并将其框架设置为视图的框架。使用MPMoviePlayerController可以访问一个属性以显示/隐藏控件。此外,当视频停止时,如果用户进入或退出全屏等,您可以获得所有优秀的委托方法。

最新更新