【发布时间】:2020-02-26 11:07:02
【问题描述】:
我正在尝试找出一种使用 react-native-web 录制和播放音频的方法。我找到了几种在 android 和 IOS 中成功执行此操作的方法,但无法弄清楚如何在 Web 上执行此操作。我也在我的项目中使用 Expo。任何帮助深表感谢。 谢谢!
【问题讨论】:
标签: react-native react-native-web
我正在尝试找出一种使用 react-native-web 录制和播放音频的方法。我找到了几种在 android 和 IOS 中成功执行此操作的方法,但无法弄清楚如何在 Web 上执行此操作。我也在我的项目中使用 Expo。任何帮助深表感谢。 谢谢!
【问题讨论】:
标签: react-native react-native-web
我注意到 Expo 的音频(expo install expo-av、import { Audio } from 'expo-av';)支持 Web,如他们的文档中所述: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'))
我们使用的 WEB 记录 (ReactJS):
recorder.current = new MediaRecorder(stream, { mimeType: 'audio/webm' });
并调用 .start() 函数,
!如果这对某人检查有用,都在互联网上
【讨论】: