Phonegap-воспроизведение локального аудио, когда телефон заблокирован iOS 6


Я создаю приложение с помощью PhoneGap, которое должно быть способно воспроизводить локальные mp3-файлы, даже если телефон заблокирован / находится в режиме ожидания. Аудиоплеер построен в HTML5 и работает нормально, но музыка останавливается, когда я закрываю приложение или выключаю телефон.

Я попытался следовать ответу, приведенному в этой ссылке UIWebView: HTML5 аудио приостанавливается в iOS 6, Когда приложение переходит в фоновый режим

Но не повезло...

Я сделал код импорта в верхней части с другим импортом функции. 
И я также включил структуру AVFoundation в свою цель. 

Именно так выглядит код в AppDelegate.m

/**
 * This is main kick off after the app inits, the views and Settings are setup here. (preferred -iOS4 and up)
 */
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{

    /* THE GOOD STUFF */
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    BOOL ok;
    NSError *setCategoryError = nil;
    ok = [audioSession setCategory:AVAudioSessionCategoryPlayback
                         error:&setCategoryError];
    if (!ok) {
        NSLog(@"%s setCategoryError=%@", __PRETTY_FUNCTION__, setCategoryError);
    }

Я пробовал в симуляторе и на iPhone 5.

Кто-нибудь в состоянии помочь?

1 4

1 ответ:

Во-первых, вы должны установить категорию аудио в вашем app_name-info.plist Категория Аудио Приложения

Затем используйте медиаплеер phonegap API http://docs.phonegap.com/en/2.7.0/cordova_media_media.md.html#media.play

function playAudio(url) {
// Play the audio file at url
var my_media = new Media(url,
    // success callback
    function() {
        console.log("playAudio():Audio Success");
    },
    // error callback
    function(err) {
        console.log("playAudio():Audio Error: "+err);
});

// Play audio
my_media.play({ playAudioWhenScreenIsLocked : true });

Обратите внимание, что по умолчанию playAudioWhenScreenIsLocked равно true.

Также обратите внимание, что в симуляторе звук никогда не будет работать в фоновом режиме, поэтому вам нужно будет протестировать на устройстве.

Пожалуйста, отметьте, как ответил, Если это помогло ?