Звук MPMoviePlayer работает в симуляторах и устройстве ipad, но не работает в устройстве iPhone - PullRequest
2 голосов
/ 23 февраля 2012

У меня проблема с MPMoviePlayerController, т. Е. Я играю URL-адрес прямого эфира в формате (m3u8) MPMoviePlayer, как показано ниже:

player = [[MPMoviePlayerController alloc] initWithContentURL:audioUrl];
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(loadStateDidChange:) 
                                                     name:MPMoviePlayerLoadStateDidChangeNotification 
                                                   object:player];
        if ([player respondsToSelector:@selector(loadState)]) 
        {
            // Set movie player layout

            [player setMovieSourceType:MPMovieSourceTypeStreaming];
            [player setControlStyle:MPMovieControlModeVolumeOnly];
            [player setFullscreen:YES];
            [player prepareToPlay];
            [player play];

        }
    }

Он работает как на симуляторах, так и на устройстве iPad с версией ios 5,но он не дает звук на любом устройстве iPhone, которое у меня есть.

Пожалуйста, помогите мне ... Спасибо, заранее.

Ответы [ 4 ]

3 голосов
/ 24 февраля 2012

Мистер Симхам ... проверьте это ниже, или это поможет нам becoZ

  1. Вызовите URL-адрес потока в мобильном сафари.Если это имеет те же результаты, то ваш код верен, а поток - нет.Тогда это будет неправильно закодированный аудиопоток.

  2. это зависит от пропускной способности, а также ниже ссылки, относящейся к пропускной способности, проверьте ее один раз ....1009 *

ССЫЛКА URL:

3 голосов
/ 23 февраля 2012

Вы назначаете устаревший MPMovieControlMode (MPMovieControlModeVolumeOnly) для свойства controlStyle, которое ожидает MPMovieControlStyle.

Кроме того, в вашем коде отсутствует часть, присваивающая MPMoviePlayerController.viewк любому суперпредставлению, а также отсутствует его размер.

Последнее, но я думаю, что самое важное для вас, я предполагаю, что iPhone, с которым вы пытаетесь это сделать, полностью установил громкость звука.Или, может быть, аудио-маршрутизация не настроена на выход динамика.Что касается последнего, убедитесь, что вы не настраиваете аудио сеанс неправильно где-либо еще в вашем приложении.В случае сомнений попробуйте поиграться со свойством useApplicationAudioSession.Попробуйте установить его в направлении NO и посмотрите, изменит ли это ваши результаты.

Если все вышеперечисленное не сработает, тогда еще одной проверкой будет вызов потокового URL-адреса в мобильном сафари.Если это имеет те же результаты, то ваш код верен, а поток - нет.Тогда это будет неправильно закодированный аудиопоток.

2 голосов
/ 23 февраля 2012

Проверьте, находится ли ваш iPhone в режиме громкоговорителя или нет -

если нет, то установите его, используя это-

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
0 голосов
/ 17 июня 2015

Проверьте, не находится ли iPhone в беззвучном режиме. Чтобы воспроизводить звук даже в режиме без звука, добавьте следующий код в AppDelegate's application: didFinishLaunchingWithOptions:

NSError *setCategoryErr = nil;
NSError *activationErr  = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES error:&activationErr];
...