it-swarm.com.ru

Показывать видео внутри Uiwebview не в полноэкранном режиме устройства

Я хочу отобразить видео внутри UIWebview. Когда мы нажимаем на видео, оно воспроизводится в полноэкранном режиме.

Как мы воспроизводим видео внутри UIWebview? Обратите внимание, что эти видеофайлы размещены на YouTube или на нашем сервере. они не связаны вместе с приложением

12
Naveen kumar

Для воспроизведения видео в 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];

Если вы хотите отображать только на маленьком экране и без веб-просмотра, используйте приведенный ниже код.

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

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

[self.view addSubview:videoPlayer.view];
0
Paras Joshi

Я думаю, вы должны попробовать это свойство класса UIWebView.

позволяет InlineMediaPlayback

Логическое значение, определяющее, воспроизводятся ли видео в формате HTML5 или используйте встроенный полноэкранный контроллер.

4
iNeal

У меня было такое же требование, чтобы воспроизвести видео внутри UIWebView. Кроме того, мне нужно было немедленно воспроизвести видео, не дожидаясь, пока пользователь нажмет кнопку воспроизведения.

Для этого я добавил это свойство в UIWebView:

webView.allowsInlineMediaPlayback = YES;

Затем в комбинации также необходимо добавить атрибут «webkit-playsinline», который будет включен в элемент видео HTML5 на веб-странице, предоставляющей URL источника видео.

<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

Вот мой полный пример Obj-C для создания полноэкранного UIWebView. Добавьте это в метод viewDidLoad UIViewController:

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]];
3
Nate Flink