React Native 无法在iOS/ iPhone上播放Expo AV音频

svujldwt  于 2022-12-24  发布在  React
关注(0)|答案(4)|浏览(175)

我用过Expo AV,并在我的应用程序中开发了一个屏幕来播放从我的服务器获取的音频文件。它在Android上运行良好,但在iPhone上无法播放任何内容。
当我播放一个按钮来播放加载和播放文件的音频

soundObject.loadAsync({ uri: this.state.file });
soundObject.playAsync();

它返回一个错误:
不支持此媒体格式。-AVPlayerItem示例失败,错误代码为-11828,域为“AVFoundationErrorDomain”。
下面是我加载和播放音频的代码:

async loadAudio() {
soundObject = new Audio.Sound();
try {
await soundObject.loadAsync({ uri: this.state.file });
console.log("File loaded: " + this.state.file);
} catch (error) {
console.log(error);
}
}

async playAudio() {
if (!this.state.isPlayingAudio) {
try {
  
  await soundObject.playAsync();
} catch (error) {
  console.log(error);
}

  else {
soundObject.pauseAsync();
  }
  }

我曾尝试在录制和获取文件时将音频格式更改为m4a,wav,caf,但没有帮助我在iPhone 7 plus,iOS 14.2上运行该应用程序有任何建议/修复吗?

pn9klfpd

pn9klfpd1#

您调用loadAsync的方式不正确。
调用应如下所示:

await Audio.Sound.createAsync(
  { uri: this.state.file },
  { shouldPlay: true }
);
3pmvbmvn

3pmvbmvn2#

我传递uri对象和第二个参数{shouldPlay:true}到loadAsync方法。这将从amazon服务器s3播放我的mp3文件
第一个月

nbnkbykc

nbnkbykc3#

请在播放soundd视图"expo-av"之前添加此方法

const enableAudio = async () => {
await Audio.setAudioModeAsync({
playsInSilentModeIOS: true,
staysActiveInBackground: false,
interruptionModeAndroid: INTERRUPTION_MODE_ANDROID_DO_NOT_MIX,
shouldDuckAndroid: false,

})

h7appiyu

h7appiyu4#

我在44届世博会上,降级到43届世博会成功了。运行expo upgrade 43

相关问题