iOS : Не удается воспроизвести звук, когда приложение находится в фоновом режиме

#react-native #react-native-sound

Вопрос:

С помощью react-native-sound и таймера react-native-background я хочу воспроизвести звук с задержкой в 10 секунд.

Вот мой очень простой код :

 import BackgroundTimer from 'react-native-background-timer'
import Sound from 'react-native-sound'

Sound.setCategory('Playback')
const soundEnd = new Sound('end.mp3', Sound.MAIN_BUNDLE)

const Timer = () => {
  useEffect(
    () => {
      const timeoutId = BackgroundTimer.setTimeout(() => {
        console.log('END setTimeout')
        soundEnd.play(() => {})
      }, 10000)

      return () => {
        BackgroundTimer.clearTimeout(timeoutId)
      }
    },
    []
  )
}
 
  • Все отлично работает на Android и iOS, когда приложение находится на переднем плане: воспроизводится звук и console.log('END setTimeout') отображается
  • Но когда приложение находится в фоновом режиме на iOS, звук не воспроизводится (но console.log('END setTimeout') отображается хорошо).

Вы не могли бы мне помочь? Согласно таймеру react-native-background, звуки должны воспроизводиться в фоновом режиме

Ответ №1:

в ios вам нужно сначала включить UIBackgroundModes из Xcode, а затем добавить это в Info.plist.

 <key>UIBackgroundModes</key>
<array>
    <string>audio</string>
</array>
 

https://github.com/zmxv/react-native-sound/issues/302

введите описание изображения здесь

Комментарии:

1. Большое вам спасибо за ваш ответ, но это не решает проблему :/

2. @Гейлорд. P проверьте скриншот, это из библиотеки react-native-sound

3. Большое вам спасибо за ваш ответ, мне также пришлось добавить в список «обработка»:)