所以我对使用EXPO和构建应用程序还相当陌生。我的任务是在客户端的应用程序中添加一个媒体播放器,我目前在iOS上的物理设备和模拟器设备上都能很好地进行设置,但当发布播放操作时,该应用程序在Android上崩溃,无论是物理设备还是模拟器设备。
如有任何帮助,我们将不胜感激。下面是我的代码片段。
async function playSound() {
console.log(`Loading link`);
setIPlayer(true);
const { sound } = await Audio.Sound.createAsync(
source = {
uri : "https://radio.canstream.co.uk:9129/live.mp3"
}
);
setSound(sound);
setIsPlaying(true);
await sound.playAsync();
}
async function stopSound () {
// await sound.stopAsync();
await sound.pauseAsync();
setIPlayer(false);
setIsPlaying(false);
}
useEffect(() => {
const getNetwork = async () => {
const res = await Network.getNetworkStateAsync();
if(res.isConnected === false && res.isInternetReachable === false){
setError(true);
}
}
getNetwork();
Audio.setAudioModeAsync({
allowsRecordingIOS: false,
// interruptionModeIOS: Audio.INTERRUPTION_MODE_IOS_DO_NOT_MIX,
interruptionModeIOS: InterruptionModeIOS.DoNotMix,
playsInSilentModeIOS: true,
// interruptionModeAndroid: Audio.INTERRUPTION_MODE_ANDROID_DUCK_OTHERS,
interruptionModeAndroid: InterruptionModeAndroid.DuckOthers,
shouldDuckAndroid: true,
staysActiveInBackground: true,
playThroughEarpieceAndroid: false,
androidImplementation: 'MediaPlayer'
})
return sound ? () => {
sound.unloadAsync(); }
: undefined;
}, [sound]);
因此,崩溃问题是由触发播放操作时切换的组件引起的。本质上是一个UI错误,必须拆除应用程序并从头开始重建才能发现它
谢谢大家!