2

Я пытаюсь получить образец звука для воспроизведения в приложении Ionic/Cordova, когда устройство Bluetooth выходит за пределы допустимого диапазона, а устройство iOS находится либо в режиме ожидания (экран заблокирован), либо приложение свернуто на задний план.Воспроизводит ли фоновое воспроизведение с плагином media cord на iOS 10?

Я использую подобную функцию к примеру в Cordova media plugin documentation с функцией, чтобы исправить аудио пути к файлу для Android устройств:

function getMediaURL(url) { 
    if(device.platform.toLowerCase() === "android") return "/android_asset/www/" + url; 
    return url; 
}; 

function soundAlarm() { 
    var mediaUrl = getMediaURL('sounds/alarm.wav'); 

    alarmSound = new Media(mediaUrl, null, 
    // error callback 
    function (err) { 
     console.log("playAudio():Audio Error: " + angular.toJson(err)); 
    }); 

    alarmSound.play({ playAudioWhenScreenIsLocked : true, numberOfLoops: 3 }); 
} 

Это прекрасно работает, когда приложение находится на переднем плане, однако при Я заблокировать телефон или минимизировать приложение, я получаю следующее сообщение об ошибке:

{"message":"","code":4} 

Согласно Cordova media plugin documentation, код ошибки 4 означает

MEDIA_ERR_NONE_SUPPORTED

Опция 'playAudioWhenScreenIsLocked', с которой я перехожу в метод воспроизведения, должна обрабатывать проблему, с которой я сталкиваюсь, но я просто получаю вышеуказанную ошибку каждый раз. Кроме того, по умолчанию для этого свойства установлено значение true.

Я не хочу использовать плагин для режима фона, так как эта функциональность должна работать из коробки через плагин media cord, а плагин с фоновым режимом может отклонить приложение из App Store.

Неужели кто-нибудь успел запустить звук, когда приложение находится в фоновом режиме или устройство находится в режиме ожидания?

+0

Вы когда-нибудь это понимали? Сейчас я столкнулся с такой же проблемой. –

ответ

0

Мне нужно было включить «Режимы фона» и проверить «Аудио, Airplay и Picture in Picture» с Xcode, чтобы заставить его работать.

+0

Где вы находите опцию «Аудио, Airplay и картинка в картинке»? Мне пришлось использовать плагин background-mode и только временно включил его, чтобы звук воспроизводился. Я смог сделать это так, потому что мое приложение частично разбужено событием с устройства bluetooth, которое взаимодействует с приложением, однако приложение, похоже, недостаточно проснулось, чтобы воспроизводить звук без использования плагина фонового режима. [Я отправил отчет об ошибке] (https://issues.apache.org/jira/browse/CB-12422), но все, что исходило от него, было дополнением к документации. – remondo

+0

Это в XCode, щелкните файл вашего проекта в Навигаторе проектов. В главном окне вы должны увидеть «Общие», «Возможности» и т. Д. И т. Д., Проходящие через верх. Нажмите «Возможности», а затем включите и разворачивайте «Режимы фона». Если это работает для вас, пожалуйста, примите ответ для будущих посетителей. :) –