ねえ、私はUIWebViewをYouTubeビデオのビデオプレーヤーとして使用することについて多くの研究を行ってきました。現在、ストーリーボードで UIWebView セットアップを使用して YouTube ビデオを再生する実用的なソリューションがあります。UIWebView は、ビデオをプレビューとして表示します。クリックすると、標準の IOS ビデオ プレーヤーでビデオが開き、ビデオが終了してユーザーがクリックすると、ビデオが閉じて、コントロールがアプリに戻ります。Web ビューは IBOutlet を介してリンクされ、次のように設定されます。
ViewController.h:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property(nonatomic, weak) IBOutlet UIWebView *mainWebView;
- (void)embedYouTube:(NSString *)url coorperateVideo:(UIWebView *)videoWebView;
@end
ViewController.m:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize mainWebView = _mainWebView;
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"Video Frame Width: %f", _mainWebView.frame.size.width);
NSLog(@"Video Frame Height: %f", _mainWebView.frame.size.height);
[self embedYouTube:@"http://www.youtube.com/" coorperateVideo:_mainWebView];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)embedYouTube:(NSString *)url coorperateVideo:(UIWebView *)videoWebView
{
NSLog(@"Video Frame Width: %f", videoWebView.frame.size.width);
NSLog(@"Video Frame Height: %f", videoWebView.frame.size.height);
NSInteger width = 280;
NSInteger height = 170;
videoWebView.allowsInlineMediaPlayback = YES;
videoWebView.mediaPlaybackRequiresUserAction = NO;
videoWebView.mediaPlaybackAllowsAirPlay = YES;
videoWebView.delegate = self;
videoWebView.scrollView.bounces = NO;
[videoWebView.scrollView setScrollEnabled:NO];
NSString *linkObj = @"http://www.youtube.com/v/1iBIcJFRLBA"; //@"http://www.youtube.com/v/6MaSTM769Gk";
NSString *embedHTML = [NSString stringWithFormat:@"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;color: white;}\\</style>\\</head><body style=\"margin:0\">\\<embed webkit-playsinline id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \\width=\"%d\" height=\"%d\"></embed>\\</body></html>", @"%@", width, height];
NSString *html = [NSString stringWithFormat:embedHTML, linkObj];
[videoWebView loadHTMLString:html baseURL:nil];
}
@end
Web ビューのセットアップとビデオ プレーヤーの動作の処理に関して 2 つの質問があります。
1) UIWebView がストーリーボード ビュー コントローラーで作成されているにもかかわらず、何らかの理由で Web ビューがフレームで開始されません。viewDidLoad
メソッドとメソッドの両方の NSLog はcoorperateVideo
、withs と height に対して 0.0 を返します。どうしてこれなの?ストーリーボードで作成されたほとんどのビューは、サイズ インスペクタで指定されたフレームで開始されるという印象を受けました。Web ビューを使用する前にフレームを設定する必要がありますか?
2) 私の 2 番目の質問は、ビデオが押されたときに呼び出されるビデオ プレーヤーに関するものです。現在、アプリは、サポートされているインターフェイスの向きが縦向きのみになるように設定されています。ただし、ビデオをクリックしてプレーヤーが表示されると、ユーザーはビデオを横向きで表示することが制限されます。ビデオ プレーヤー ビューのみが他の方向をサポートできるように設定する方法はありますか?
助けてくれてありがとう!