IPhone Live Video Stream Media Player

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

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

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

Спасибо заранее.

0
03 февр. '10 в 13:34
источник поделиться
1 ответ

Теперь у меня теперь есть проблема с отображением вида/метки/кнопки поверх видеороликов. В примере с 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 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 возвращает null, но он по-прежнему воспроизводит потоковое содержимое. Я попытался удалить проверку, чтобы количество окон было больше 1, но оно все еще не отображало вид наложения.

Кто-нибудь знает об этом? Благодаря

0
04 февр. '10 в 13:10
источник

Посмотрите другие вопросы по меткам или Задайте вопрос