2017-02-16 64 views
2

我一直在想,如何在Android中通过USB捕捉音频输入。Android中通过USB进行音频输入

我的场景是通过外部硬件接收音频并通过android应用播放接收到的音频。这个传输是通过USB完成的。

有什么办法可以使用Android SDK/Android NDK来做到这一点。

任何建议都会对我有所帮助。

完成任务Right by time I am able to interact with Hardware using CDC class and also able to play some random noisy audio through USB in my app. Neither I am able to get clear sound by that approach, nor there is consistency within the transmission of audio.

感谢。

问候,Vivek

+0

什么是您使用的外部硬件?它是USB耳机还是其他音频设备?或者它是你自己的硬件?如果后者是这种情况,那么USB芯片/软件使用什么?由于你的问题没有揭示你对USB的理解程度,为了确保答案符合你的要求,这些知识很重要。 – diidu

+0

我想通过我的android应用程序获得FM收音机音频。这里FM收音机是一个芯片,将被连接到Android设备的USB端口。有关更多信息,请访问:https://play.google.com/store/apps/details?id=kr.co.tvongo.tivizen.darshantvongodvbt2dongle&hl=en – AndroidHacker

+0

好的。如果你自己没有实现USB加密狗,但是使用一些现有的硬件(例如https://www.adafruit.com/product/1497),找出设备包含和实现的USB类很重要(或者希望只是使用)驱动程序。找到有关加密狗信息的一种方法是将其插入Windows PC并使用这:http://www.nirsoft.net/utils/usb_devices_view.html或这个:https://msdn.microsoft.com/en-us/library/windows/hardware/ff560019(v=vs.85).aspx来发现它实现的设备类。很可能有音频课程。 – diidu

回答

2

大多数现代Android设备可以充当USB主机。所以你可以连接例如用于捕获音频的USB麦克风。 Android还包含对usb_audio类的支持。用它来访问设备上的音频。

由于您已经使用通信设备类(CDC)进行了实验,因此您了解Android的USB主机功能。现在您需要确保您的外设已经实现了USB音频类(音频源部分),并让您的应用程序使用音频类来获取音频。这很好的解释了here,所以将所有信息复制到这篇文章是没有意义的。如果您已经在使用音频课程,那么该页面可能会解释您遇到的一些问题(例如,使用错误的格式)。

USB音频类规范可在USB.org website找到。这些问题是,Audio类非常大,Android可能不支持所有内容。

+0

感谢您的回复。直到我通过CDC配置文件本身发送音频数据。想知道我们是否可以使用使用JAVA的USB Audio类,或者我们需要使用原生NDK/C++代码来编码那部分。如果您可以通过USB音频类部分帮助我,那将会很棒。 – AndroidHacker

+1

最后我与USB Audio一起使用了Symbian,所以我可能无法轻松帮助处理所有与Android相关的细节。也可以通过CDC传输音频,但质量不会很好,您需要找到一种方法将音频正确打包到USB帧。 Audio类中使用的同步端点专为高带宽流媒体而设计,因此效果更好。就我所知,如果您的Android设备已经支持USB Audio类的相关部分(可以使用USB麦克风),您可以在Java级别工作,除非您需要更多控制权和高质量。 – diidu

+0

感谢您的再次回复。将与您的所有建议一起去。希望解决这个问题。 – AndroidHacker

相关问题