首页 > 解决方案 > 在 react-native-web 上录制和播放音频

问题描述

我正在尝试找出一种使用 react-native-web 录制和播放音频的方法。我已经找到了几种在 android 和 IOS 中成功执行此操作的方法,但无法弄清楚如何在 Web 上执行此操作。我也在我的项目中使用 Expo。任何帮助深表感谢。谢谢!

标签: react-nativereact-native-web

解决方案


我注意到 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() 函数,

!如果这对某人检查有用,都在互联网上


推荐阅读