首页 > 解决方案 > Expo Audio保持ActiveInBackground不工作

问题描述

我正在尝试在后台听音乐(流媒体),但当我打开另一个应用程序时流媒体停止。

  const soundObject = new Audio.Sound();

  async function playAudio() {
    try {
      await soundObject.loadAsync({
        uri: "http://suaradio2.dyndns.ws:11004/stream"
      });
      await soundObject.playAsync();
      soundObject.setAudioModeAsync({
        staysActiveInBackground: true
      });
      // Your sound is playing!
    } catch (error) {
      // An error occurred!
    }
  }

标签: react-nativeaudioexpo

解决方案


创建工作零食:https ://snack.expo.io/@djalik/staysactiveinbackground

您必须设置 setAudioModeAsync 的所有参数:

await Audio.setAudioModeAsync({
        staysActiveInBackground: true,
        interruptionModeAndroid: Audio.INTERRUPTION_MODE_ANDROID_DO_NOT_MIX,
        shouldDuckAndroid: true,
        playThroughEarpieceAndroid: true,
        allowsRecordingIOS: true,
        interruptionModeIOS: Audio.INTERRUPTION_MODE_IOS_DO_NOT_MIX,
        playsInSilentModeIOS: true,
      });

推荐阅读