微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法将 byte[] 发送到 React Native JS Bridge,反之亦然?

如何解决有没有办法将 byte[] 发送到 React Native JS Bridge,反之亦然?

我正在考虑构建一个自定义视图来直接处理 Java 内部的 WebSocket、STOMP、AudioRecorder、AudioPlayer,而不是 JS 桥 -> Java,如果您知道如何创建自定义视图并将其与 React 集成导航,请告诉我

我的目标是记录音频数据 -> 将其传输到 WebSocket 端点。 另一个设备将从 WebSocket 端点接收数据 -> 播放音频数据。 无需从 byte[] 转换音频数据 -> WritableArray / String 用于录制音频,以及从 WebSocket String 播放音频 -> byte[]

录音机的当前解决方案:

  1. 在字节[]中记录音频数据。
  2. 将音频数据转换为 WritableArray / String。
  3. 将其发送到 JS Bridge。
  4. 将音频数据发送到 WebSocket 端点。

音频播放器的当前解决方案:

  1. 从 WebSocket 端点接收音频数据。
  2. 以音频数据为参数运行 ReactMethod,例如 await AudioPlayerModule.streamAndLoadAsync(audioData)
  @ReactMethod
  public void streamAndplayAsync(String data,final Promise promise) {
    byte[] audioData = Base64.decode(data,Base64.NO_WRAP);

    audioTrack.play();
    audioTrack.write(audioData,audioData.length);
    audioTrack.stop();
    promise.resolve(null);
  }
  1. 将音频数据转换为字节[]。
  2. 播放音频

我的预期结果是音频数据播放流畅。

我的实际结果:

  1. 512 MB,虚拟设备,听起来像是以 0.25 的速度播放音频
12-30 16:04:00.994 4740-4785/com.satpam I/ReactNativeJS: startAudioRecordingAsync()
12-30 16:04:01.264 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 363K,42% free 6435K/10951K,paused 1ms+1ms,total 5ms
12-30 16:04:01.734 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 400K,42% free 6429K/10951K,paused 12ms+12ms,total 29ms
12-30 16:04:02.174 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 380K,42% free 6434K/10951K,total 7ms
12-30 16:04:02.744 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 378K,42% free 6447K/10951K,total 30ms
12-30 16:04:03.194 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 396K,42% free 6446K/10951K,paused 12ms+1ms,total 18ms
12-30 16:04:03.694 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 381K,42% free 6458K/10951K,paused 11ms+1ms,total 20ms
12-30 16:04:04.214 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 387K,42% free 6459K/10951K,paused 12ms+11ms,total 33ms
12-30 16:04:05.044 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 391K,41% free 6482K/10951K,paused 14ms+21ms,total 127ms
12-30 16:04:05.384 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 408K,41% free 6479K/10951K,paused 15ms+3ms,total 78ms
12-30 16:04:05.894 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 396K,41% free 6495K/10951K,paused 12ms+5ms,total 29ms
12-30 16:04:06.284 4740-4785/com.satpam I/ReactNativeJS: stopAudioRecordingAsync()
12-30 16:04:06.804 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 395K,41% free 6489K/10951K,paused 12ms+15ms,total 39ms
12-30 16:04:07.484 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 395K,41% free 6496K/10951K,paused 12ms+14ms,total 35ms
12-30 16:04:07.924 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 403K,41% free 6478K/10951K,total 23ms
12-30 16:04:09.034 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 394K,41% free 6474K/10951K,paused 14ms+4ms,total 31ms
12-30 16:04:09.854 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 391K,41% free 6467K/10951K,paused 11ms+0ms,total 15ms
12-30 16:04:11.024 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 397K,41% free 6462K/10951K,paused 13ms+14ms,total 45ms
12-30 16:04:12.824 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 408K,42% free 6444K/10951K,paused 1ms+0ms,total 10ms
12-30 16:04:14.764 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 392K,42% free 6439K/10951K,paused 13ms+12ms,total 35ms
12-30 16:04:16.774 4740-4744/com.satpam D/dalvikvm: GC_CONCURRENT freed 403K,42% free 6432K/10951K,paused 17ms+20ms,total 67ms
  1. 6 GB,真机,音频播放流畅。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。