如何在颤振和平台之间传输麦克风数据?
Posted
技术标签:
【中文标题】如何在颤振和平台之间传输麦克风数据?【英文标题】:How to stream mic data between flutter and platform? 【发布时间】:2018-01-04 16:42:50 【问题描述】:我一直在试图弄清楚如何将麦克风数据从 android 流式传输到颤振。我找到了一些关于如何在夹头中查询 mic 的示例代码,但我不知道如何将数据放到 Flutter 上。
https://github.com/bitplane/Microphone/blob/master/src/net/bitplane/android/microphone/MicrophoneService.java
我不确定在 Flutter 中要查看哪些类
https://docs.flutter.io/flutter/services/EventChannel/receiveBroadcastStream.html
我想知道是否有人可以帮助我指出正确的方向。
【问题讨论】:
【参考方案1】:我一直在 Flutter github 中挖掘示例插件并找到了这个。
https://github.com/flutter/plugins/tree/master/packages/sensors
不幸的是,EventChannel 文档很少。我不相信我们可以将流从颤振传递到平台,这样我就可以重播我在反馈循环中记录的任何内容。
事件回调。支持双重用途:发送给 Flutter 的事件的生产者作为该接口的客户端发送事件。 Flutter 发送的事件的消费者实现了这个接口来处理接收到的事件(后者的功能还没有实现)。
https://docs.flutter.io/javadoc/io/flutter/plugin/common/EventChannel.EventSink.html
过程类似于创建methodchannel,但我需要在android中创建onCancel和onListen。在 onListen 中,我还必须创建可以接收事件的侦听器。如果我想创建音频事件,我必须使用 setPositionNotificationPeriod(int) 和 OnRecordPositionUpdateListener(listener)。
https://developer.android.com/reference/android/media/AudioRecord.html
https://github.com/flutter/plugins/blob/master/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java
在颤振上我必须创建一个广播流事件
https://github.com/flutter/plugins/blob/master/packages/sensors/lib/sensors.dart
我设法编写了我自己的可怕插件,该插件仅适用于 android atm。如果有人需要,我想知道我应该添加什么许可许可
https://github.com/hungrymonkey/mic_stream
【讨论】:
我发现找出 javabyte[]
在 dart 中最终会变成 Uint8List
非常有用。这给我带来了最多的问题。您的 mic_stream 和 flutter.dev/docs/development/platform-integration/… 的示例代码非常有用。以上是关于如何在颤振和平台之间传输麦克风数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 React Native 上捕获麦克风音频并将其流式传输到 IceCast 端点?