从UIWebView中嵌入的YouTube视频中删除滑块和时间戳

时间:2012-03-29 13:38:48

标签: ios 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没有运气。

干杯, 迪安

2 个答案:

答案 0 :(得分:1)

为了能够隐藏滑块和其他控件,请移除<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>
'controls=0'一起使用的

<iframe>会为您隐藏控件。

在我对iOS嵌入式视频的简短体验中,似乎解决一个问题通常会导致以前工作正常的其他问题。例证:上面的示例隐藏了控件,但是会覆盖UIWebView左上角的视频标题。解决方案是将此用于您的视频参数列表:'?controls = 0&amp; showinfo = 0'

要查看“showinfo”参数及其他参数,请查看以下文档:https://developers.google.com/youtube/player_parameters#Parameters并非参​​数文档中的所有内容都适用于iOS <iframe>,但可以使用其中一些你可能会发现一些有用的东西。

对于它的价值(这对于专家网络编码员来说可能是显而易见的,我不是),你不必将'id'属性指定为'yt',但是我见过的大多数例子都是做这个; 'yt'没有神奇的价值,你可以将id设置为对你有意义的东西。

答案 1 :(得分:-1)

你有没有理由不使用MPMoviePlayerController?

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