【问题标题】:iOS : Can't play sound when the application is in the backgroundiOS:应用程序在后台时无法播放声音
【发布时间】:2021-10-10 10:31:58
【问题描述】:

使用react-native-sound 和react-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,声音应该在后台播放

【问题讨论】:

    标签: react-native react-native-sound


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢您的回答,但它并没有解决问题:/
    • @Gaylord.P 检查屏幕截图它来自 react-native-sound 库
    • 非常感谢您的回答,我还不得不在列表中添加“处理”:)
    猜你喜欢
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 2014-06-11
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多