Медиа-плеер iPhone Live Video Stream - PullRequest
0 голосов
/ 03 февраля 2010

Я надеюсь создать приложение, которое будет транслировать потоковое видео, с видом сверху, с метками и кнопкой на нем.

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

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

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

1 Ответ

0 голосов
/ 04 февраля 2010

У меня сейчас просто проблема с отображением вида / метки / кнопки поверх видеофильма. В примере проекта Apple MoviePlayer вы можете добавить вид поверх видео с помощью этого кода:

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];
}

Наложение - это представление, которое содержит запрошенную метку и кнопку. Однако, когда я применяю тот же код к 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 возвращает ноль, но все равно воспроизводит потоковое содержимое. Я попытался убрать проверку на счетчик окон, превышающий 1, но он по-прежнему не отображал вид наложения.

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

...