0

Я надеюсь создать приложение, которое транслирует видео в прямом эфире, на котором сверху отображаются метки и кнопка на нем.iPhone Live Video Stream Media Player

Из моего исследования и тестирования функции потоковой передачи HTTP-видео (доступной с ОС iPhone 3.0) кажется, что вы создаете веб-представление, которое указывает на индекс html, который содержит преобразованный видеопоток, и это отображается как видеоролик QuickTime в приложении. Это означает, что у меня нет контроля над Media Player, который открывается. Кто-нибудь знает, как вы можете это контролировать?

Я знаю, что пример кода Apple MoviePlayer показывает, как размещать представления поверх видеоролика MediaPlayer, но как это можно сделать с потоком в прямом эфире http?

Заранее спасибо.

ответ

0

У меня теперь просто проблема с отображением вида/метки/кнопки поверх видеороликов. В примере проекта MoviePlayer Apple, вы можете добавить вид сверху видео с этим кодом:

MoviePlayerAppDelegate *appDelegate = (MoviePlayerAppDelegate *)[[UIApplication sharedApplication] delegate];  

// initialize a new MPMoviePlayerController object with the specified URL, and play the movie 
[appDelegate initAndPlayMovie:[self localMovieURL]]; 

NSArray *windows = [[UIApplication sharedApplication] windows]; 

if ([windows count] > 1) { 
    // Locate the movie player window 
    UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow]; 

    // Add our overlay view to the movie player's subviews so it is displayed above it. 
    [moviePlayerWindow addSubview:self.overlayView]; 
} 

OverlayView вид, который содержит требуемый ярлык и кнопка. Однако, когда я применяю тот же код к URL-адресу фильма, содержащему файл .m3u8, он не отображает вид наложения, например. http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8

NSURL *newMovieURL = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8">]; 

if (movieURL) { 
    NSLog(@"movieURL"); 

    if ([movieURL scheme])  // sanity check on the URL 
    { NSLog(@"[movieURL scheme]"); 
      [appDelegate initAndPlayMovie:newMovieURL]; 

      NSArray *windows = [[UIApplication sharedApplication] windows]; 
      NSLog(@"windows count:%d", [windows count]); 

     if ([windows count] > 1) { 
      UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow]; 
      [moviePlayerWindow addSubview:self.overlayView]; 
      } 
    } 
    else NSLog(@"![movieURL scheme]"); } else 
    NSLog(@"!movieURL"); 

Количество окон, возвращаемых только 1, в отличие от 2 в предыдущем примере, несмотря на то, что фильм играет. Когда я проверяю URL-адрес, чтобы убедиться, что это нормально, movieURL возвращает null, но он по-прежнему воспроизводит потоковое содержимое. Я попытался удалить проверку, чтобы количество окон было больше 1, но оно пока не отображало вид сверху.

Кто-нибудь знает об этом? Спасибо