2013-05-09 21 views
3

У меня есть MPMoviePlayerController в моем приложении iOS, которое передает видео с Amazon S3. Видео прекрасно воспроизводится, но кажется, что на устройстве (я тестировал iOS 6, не уверен в других) звук не воспроизводится. Звук отлично работает на эмуляторе, а не на устройстве.MPMoviePlayerController аудио не воспроизводится на устройстве, но воспроизводится на симуляторе

У кого-нибудь есть идеи, что не так? Вот мой код:

// Construct the video's URL 
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://s3.amazonaws.com/<mybucket>/%d.m4v",videoFileNumber]]; 
vidPlayer = [[MPMoviePlayerController alloc] initWithContentURL: url]; 

// Set up the video player 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayBackDidFinish:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:vidPlayer]; 

vidPlayer.scalingMode = MPMovieScalingModeAspectFill; 
vidPlayer.controlStyle = MPMovieControlStyleDefault; 
vidPlayer.shouldAutoplay = YES; 

[self.view addSubview:vidPlayer.view]; 
[vidPlayer setFullscreen:YES animated:YES]; 

Спасибо!

+0

Вы получили решение? В моем случае звук воспроизводится на сафари на устройстве iPad, а также на симуляторе, но он не воспроизводится только в моем приложении, на том же устройстве. – ViruMax

ответ

5

Вы забыли сказать prepareToPlay. Этот призыв абсолютно необходим. Я не говорю, что это определенно решит проблему, но это очень хорошо может, и вы абсолютно должны назвать его на современных iOS-системах.

Также: чтобы узнать, что происходит не так, вы должны зарегистрироваться для получения уведомлений. MPMoviePlayerPlaybackDidFinishNotification это хорошо, но я настоятельно призываю вас зарегистрироваться не менее MPMoviePlayerLoadStateDidChangeNotification.

Кроме того, я должен был бы предположить, что, поскольку звук не воспроизводится, но воспроизводится видео, вы можете захотеть относиться к формату аудио, содержащемуся в этом фильме. У устройства есть некоторые удивительные скрытые ограничения на то, что могут воспроизводить аудиоформаты: например, слишком сжатый звук может вызвать проблемы.

+1

Что сказал Мэтт. Симулятор (OS X) может воспроизводить больше форматов, чем фактическое устройство (iOS). Помните, что это просто симулятор, а не полный эмулятор. –

+0

Спасибо, ребята! Я рассмотрю аудиоформат, а также другие вещи, упомянутые @matt. – SZH

Смежные вопросы