gpt4 book ai didi

java - 有人有 MediaRecorder 与 ParcelFileDescriptor.fromDatagramSocket 一起使用吗?

转载 作者:太空宇宙 更新时间:2023-11-04 15:13:49 25 4
gpt4 key购买 nike

我正在尝试制作一个使用 MediaRecorder 录制音频的示例,录制的数据通过 Android(>=4.0) 上的 UDP 套接字传递。

阅读文章: Broadcasting video with Android - without writing to local files ,我受雇ParcelFileDescriptor.fromDatagramSocket

这是我目前正在编写的简化伪代码:

  //private DatagramSocket ds;
//private MediaRecorder mRecorder;
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromDatagramSocket(ds);

mRecorder = new MediaRecorder();
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mRecorder.setOutputFile(pfd.getFileDescriptor());
mRecorder.prepare();
mRecorder.start();

这里只是一个简单的 DatagramSocket(UDP) 监听器线程循环来观察 DatagramSocket ds

    //...
private DatagramSocket ds;
private int localPort = 39000;
private MediaRecorder mRecorder;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try
{
ds = new DatagramSocket(localPort);
}
catch (SocketException e)
{
System.out.println(e);
}
class IOThread extends Thread
{
@Override
public void run()
{
byte []buf = new byte[1024];
DatagramPacket packet= new DatagramPacket(buf, buf.length);
while (true)
{
try
{
ds.receive(packet);
SocketAddress sockAddress = packet.getSocketAddress();
int len = packet.getLength();
String msg = new String(buf, 0, len);
System.out.println(msg + ":" + len + "byte receive by "+ sockAddress.toString());
}
catch (IOException e)
{
System.out.println(e);
}
}
}
}
IOThread io1 = new IOThread();
io1.start();
//..........

原则上,我希望 MediaRecorder 记录的缓冲区通过 UDP FileDescriptor 传递,并且我可以以某种方式管理套接字,但到目前为止,我没有观察到任何情况发生。

我确认 UDP 监听器单元与其他 UDP 输入一起工作正常,并且 MediaRecorder 单元应该没问题,因为它与 localFiles 一起工作,而不是 UDP 套接字 FileDescriptor。

有什么建议吗?

提前致谢!

最佳答案

也许,最好通过 MediaRecorder -> LocalSocket,

这是我随后的问答

a LocalSocket (Unix domain) client-server data flow issue for MediaRecorder in Android (Java)

关于java - 有人有 MediaRecorder 与 ParcelFileDescriptor.fromDatagramSocket 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21059220/

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