gpt4 book ai didi

android - 将音频从 Android 流式传输到桌面应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:29 25 4
gpt4 key购买 nike

标题说的是真的。我需要从电话上的麦克风流式传输音频并在计算机上的桌面应用程序(也是 Java 代码)中播放它。

使用 UDP 或 TCP 对我来说并不重要,哪个最有效。无论如何,手机和计算机将位于同一 NAT 上,因此传输将正常进行。

我很清楚如何使用这段代码从设备发送流数据:

MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

String host = "10.0.2.2";
int port = 5740;

Socket socket = null;
try {
socket = new Socket(InetAddress.getByName(host), port);

ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);
recorder.setOutputFile(pfd.getFileDescriptor());
recorder.prepare();
recorder.start();

Log.d(TAG, "Sending audio for 20 seconds..");
Thread.sleep(20000);

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

问题是,如何在 PC 上的 java 应用程序中播放此流?还是有更好的流式传输声音的方法?

我已经在互联网上挖掘了这方面的信息,但没有任何好的结果,但肯定有人以前完成过这个?

在此先感谢您提供的任何帮助!

最佳答案

我所做的事情与您一直在尝试做的事情非常接近。我正在使用 gstreamer在我的服务器上监听一个 udp 端口​​。还有一个用 java 编写的中继服务器,它基本上只不过是一个环回套接字。有一个等待移动客户端连接的服务器端口,在接收到数据后,它使用 DatagramPackets(udp 数据包的 java 类)将它们全部转储到 gstreamer 的 udp 端口​​。唯一的问题是为您的 gstreamer 管道找到合适的解码器。

关于android - 将音频从 Android 流式传输到桌面应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4324341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com