react-native - 在 react-native-web 上录制和播放音频
问题描述
我正在尝试找出一种使用 react-native-web 录制和播放音频的方法。我已经找到了几种在 android 和 IOS 中成功执行此操作的方法,但无法弄清楚如何在 Web 上执行此操作。我也在我的项目中使用 Expo。任何帮助深表感谢。谢谢!
解决方案
我注意到 Expo 的音频 ( expo install expo-av
, import { Audio } from 'expo-av';
) 支持他们的文档中提到的网络:https ://docs.expo.io/versions/latest/sdk/audio/
编辑
在 MOBILE 上播放音频:(React Native Expo)
/**
* load, play and unload sound
* @param soundObject e.g new Audio()
* @param audio e.g: require('audio.mp3')
*/
export async function playAudio(soundObject, audio) {
try {
await soundObject.loadAsync(audio);
const playRes = await soundObject.playAsync();
soundObject.setOnPlaybackStatusUpdate(async (status) => {
if (status.didJustFinish === true) {
await soundObject.unloadAsync()
}
})
} catch (error) {
console.log('play audio err:', error);
await soundObject.unloadAsync()
soundObject.setOnPlaybackStatusUpdate(null)
}
}
例如:
import { Audio } from 'expo-av';
const soundObject = new Audio.Sound();
并使用该功能:
playAudio(entranceSound, require('audio.mp3'))
我们使用(ReactJS)在WEB上录制:
recorder.current = new MediaRecorder(stream, { mimeType: 'audio/webm' });
并调用 .start() 函数,
!如果这对某人检查有用,都在互联网上