0

使用react-native-soundreact-native-background-timer,我想在延迟 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-timer,声音应该在后台播放

4

1 回答 1

0

在 ios 上,您需要先从 Xcode 启用 UIBackgroundModes,然后将其添加到 Info.plist 中。

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

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

在此处输入图像描述

于 2021-10-10T20:11:38.063 回答