MPMoviePlayerController Аудио-шоу Кнопка «Готово» - PullRequest
4 голосов
/ 17 февраля 2011

Я использую MPMoviePlayerController для воспроизведения аудиопотока.Мой код соответствует примеру:

http://iosdevelopertips.com/video/getting-mpmovieplayercontroller-to-cooperate-with-ios4-3-2-ipad-and-earlier-versions-of-iphone-sdk.html

Все работает нормально, но во время воспроизведения потока нет кнопки "Готово", чтобы закрыть проигрыватель.

Я проверил это сначала с нормальным .mp3 файлом.С файлом единственная возможность, которую я нашел, - это пропустить до конца, чтобы игрок получил уведомление MPMoviePlayerPlaybackDidFinishNotification (но это не сработает в бесконечном потоке, так как нет временной шкалы, чтобы пропустить до конца).

Я пробовал различные стили, такие как [mp setControlStyle:MPMovieControlStyleFullscreen];, но безуспешно.

В документации по MPMoviePlayerController Class стоит:

Этот класс воспроизводит любой фильмили аудио файл, поддерживаемый в iOS.Это включает в себя как потоковый контент, так и файлы фиксированной длины

Есть ли возможность отображать эту кнопку во время воспроизведения некоторого аудиоконтента, или у кого-нибудь есть другое решение?

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

Ответы [ 2 ]

13 голосов
/ 03 марта 2011

Я нашел решение сам.

Использование класса MPMoviePlayerViewController вместо MPMoviePlayerController решило проблему:

NSString *path = @"http://yourstreamingurl.com/stream.m3u";

MPMoviePlayerViewController* mpviewController = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:path]];

mpviewController.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;  
[self presentModalViewController:mpviewController animated:YES];
[[mpviewController moviePlayer] play];
2 голосов
/ 01 мая 2013

Для локального воспроизведения файла удалите

mpviewController.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;  

В противном случае он вернется

Terminating app due to uncaught exception NSInvalidArgumentException reason An AVPlayerItem cannot be associated with more than one instance of AVPlayer
...