首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从flutter webrtc插件中获取音频缓冲区?

如何从flutter webrtc插件中获取音频缓冲区?
EN

Stack Overflow用户
提问于 2021-06-04 16:28:03
回答 1查看 175关注 0票数 0

我正在使用flutter-webrtc-plugin,想要录制本地和远程音频流。有什么方法可以让我从媒体流中获取音频缓冲区吗?我已经尝试在unified-plan分支中使用AudioFileRenderer。在MediaRecorderImpl.java的startRecording函数中,我提供了文件存储路径,例如" storage /emulated/0/Android/data",每次结束通话都会成功创建一个文件,但是录制的文件已经损坏,无法播放。终端没有错误。我使用的是flutter v1.22.6,并从0.5.8开始派生了flutter-webrtc。我将AudioFileRenderer文件添加到flutter-WebRTC0.5.8中,我的代码如下:

代码语言:javascript
复制
public void startRecording(File file) throws Exception {
    recordFile = file;
    if (isRunning)
        return;
    isRunning = true;
    //noinspection ResultOfMethodCallIgnored
    file.getParentFile().mkdirs();
    if (videoTrack != null) {
      System.out.println("try123 1");
        videoFileRenderer = new VideoFileRenderer(
            file.getAbsolutePath(),
            EglUtils.getRootEglBaseContext(),
            audioInterceptor != null
        );
        videoTrack.addSink(videoFileRenderer);
        if (audioInterceptor != null)
            audioInterceptor.attachCallback(id, videoFileRenderer);
    } else {
        Log.e(TAG, "Video track is null");
        if (audioInterceptor != null) {
            //TODO(rostopira): audio only recording
            // throw new Exception("Audio-only recording not implemented yet");
     
            Log.d(TAG, "Try to use onWebrtcSamplesReady");
            audioFileRenderer = new AudioFileRenderer(file);
            audioInterceptor.attachCallback(id, audioFileRenderer);
        }
    }
}

如有任何帮助,我们不胜感激!谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-06-12 10:26:37

我也在寻找同样的解决方案,到目前为止还没有找到。

因此,我使用webview来处理实时通信部分(通信和记录),同时保持Firebase消息传递和EventSource/SSE (我没有使用socket)。

这并不是直接回答你的问题,只是提供替代的解决方案,这总比没有解决方案好,可能在未来当flutter RTC更新并支持仅语音录制时,我们可以更新我们开发的应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67833936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档