【问题标题】:Recording and Playing audio on react-native-web在 react-native-web 上录制和播放音频
【发布时间】:2020-02-26 11:07:02
【问题描述】:

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

【问题讨论】:

    标签: react-native react-native-web


    【解决方案1】:

    我注意到 Expo 的音频(expo install expo-avimport { 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() 函数,

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

    【讨论】:

    • 它明确表示支持“待定”。在谷歌上发现这个非常令人沮丧
    猜你喜欢
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 2022-08-10
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多