How to change embed video size while playing in UI

2019-08-02 08:44发布

I have a UIWebView with size 250x160, which should play video from youtube.com.

NSString *videoURL = @"http://www.youtube.com/v/Y4Y_a45Bv20?version=3&f=videos&app=youtube_gdata";
        NSString *videoHTML = [NSString stringWithFormat:@"\
                               <html><body>\
                               <embed src=\"%@\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"%f\" height=\"%f\">\
                               </embed>\
                               </body></html>", videoURL, self.web.frame.size.width-20, self.web.frame.size.height-20];


        [self.web loadHTMLString: videoHTML baseURL: nil];

While playing video I want to resize the UIWebView. When I make it, for example 2 times bigger, embed video stays how it was 250x160. How can I resize it without restarting it?

3条回答
贼婆χ
2楼-- · 2019-08-02 09:04

try affineTransform.

webview.transform = CGAffineTransformMakeScale(2, 2);

or

webView.scalesPageToFit=YES;
查看更多
Evening l夕情丶
3楼-- · 2019-08-02 09:15

I found anoyingly easy solution :

NSString *videoHTML = [NSString stringWithFormat:@"<iframe class=\"youtube-player\" type=\"text/html\" width=\"100%%\" height=\"98%%\" src=\"http://www.youtube.com/embed/Y4Y_a45Bv20?showinfo=0\" frameborder=\"0\"></iframe>"];

The key is in width=\"100%%\" and height=\"98%%\". I didn't set height to 100%%, because while playing video, it's strangely increases and after 10-20 seconds you need to scroll uiwebview to find where video is gone.

And don't forget set UIWebView scalePageToFit = YES;

查看更多
聊天终结者
4楼-- · 2019-08-02 09:20

I found this approach and it worked for me:

webView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);

Auto-resize iOS WebView Helper

查看更多
登录 后发表回答