12

UIWebview内に動画を表示したい。ビデオをクリックすると、デバイスのフルスクリーンで再生されます。

UIWebview 内でビデオを再生するにはどうすればよいですか? これらのビデオ ファイルは、YouTube または当社のサーバーでホストされていることに注意してください。それらはアプリと一緒にバンドルされていません

4

3 に答える 3

4

UIWebViewクラスのこのプロパティを試してみるべきだと思います。

allowInlineMediaPlayback

HTML5 ビデオをインラインで再生するか、ネイティブのフルスクリーン コントローラーを使用するかを決定するブール値。

于 2013-07-29T12:14:34.577 に答える
3

UIWebView 内でビデオをインラインで再生するという同じ要件がありました。さらに、ユーザーが再生ボタンを押すのを待たずに、すぐにビデオを再生する必要がありました。

これを実現するために、このプロパティを UIWebView に追加しました。

webView.allowsInlineMediaPlayback = YES;

次に、組み合わせて、ビデオ ソース URL を提供する Web ページの HTML5 video 要素内に「webkit-playsinline」属性を追加する必要があります。

<video src="assets/myMovie.m4v" webkit-playsinline></video>

Apple ドキュメントを参照してください: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/index.html#//apple_ref/doc/uid/TP40006950-CH3-SW32

全画面表示の UIWebView を作成する完全な Obj-C の例を次に示します。これを UIViewController の viewDidLoad メソッドに追加します。

NSURL *websiteUrl = [NSURL URLWithString:@"http://example.com/myMovie.m4v"];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:websiteUrl];

UIWebView * webView = [[UIWebView alloc] init];
webView.allowsInlineMediaPlayback = YES;
webView.mediaPlaybackRequiresUserAction = NO;
webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];
[webView setTranslatesAutoresizingMaskIntoConstraints:NO];
[webView loadRequest:urlRequest];
[self.view addSubview:webView];

// Width constraint
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:webView
                                                      attribute:NSLayoutAttributeWidth
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeWidth
                                                     multiplier:1
                                                       constant:0]];

// Height constraint
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:webView
                                                      attribute:NSLayoutAttributeHeight
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeHeight
                                                     multiplier:1
                                                       constant:0]];

// Center horizontally
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:webView
                                                      attribute:NSLayoutAttributeCenterX
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeCenterX
                                                     multiplier:1.0
                                                       constant:0.0]];

// Center vertically
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:webView
                                                      attribute:NSLayoutAttributeCenterY
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeCenterY
                                                     multiplier:1.0
                                                       constant:0.0]];
于 2015-04-17T19:46:06.067 に答える
0

以下のコードで使用中のビデオを再生するにUIWebViewは....

NSString *strVedio = @"<video controls> <source src=\"YourVideo.mp4\"> </video>";
NSString *path = [[NSBundle mainBundle] pathForResource:@"YourVideo" ofType:@"mp4"];
[Webview loadHTMLString:strVedio baseURL:[NSURL fileURLWithPath:path]];

アップデート:

以下のコードを使用してUIWebView、ビデオ URL からビデオを表示します...

  NSString *embedHTML = @"\
  <html><head>\
  <style type=\"text/css\">\
  body {\
  background-color: transparent;
  color: white;
  }\
  </style>\
  </head><body style=\"margin:0\">\
  <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
  width=\"%0.0f\" height=\"%0.0f\"></embed>\
  </body></html>";

  NSString *strHtml = [NSString stringWithFormat:embedHTML, yourURLString, width,height];//set width and height which you want

  [webView loadHTMLString:strHtml baseURL:nil];
  [self.view addSubview:webView];

小さな画面でのみ表示し、webview なしで表示する場合は、次のコードを使用します。

MPMoviePlayerController *videoPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:url]];
[player setControlStyle:MPMovieControlStyleNone];

player.view.frame = CGRectMake(0, 0, 150, 150);

[self.view addSubview:videoPlayer.view];
于 2013-07-29T10:52:40.943 に答える