我正在开发一款Android应用程序,它应该能够在不将其存储到SD卡上的情况下,将视频流传输到我的本地服务器。
为此,我使用C#制作了一个简单的套接字应用程序,用于侦听特定的IP:PORT。
在Android部分,我使用套接字将
这个应用程序在Android手机上启动得很好,但它没有显示预览,当我开始录制时它会退出而不会出现任何异常。它也没有向网络发送任何数据流。
当我将
对于服务器部分,当我从任何其他应用程序(来自PC)向相同的IP:PORT发送数据时,它可以接收数据。
总之,我想建立PC和Android之间使用套接字进行流媒体传输的通信通道。
以下是我的Android代码:
为此,我使用C#制作了一个简单的套接字应用程序,用于侦听特定的IP:PORT。
在Android部分,我使用套接字将
setOutputFile()
设置为此IP:PORT。这个应用程序在Android手机上启动得很好,但它没有显示预览,当我开始录制时它会退出而不会出现任何异常。它也没有向网络发送任何数据流。
当我将
setOutPutFile()
设置为SD卡时,它能够完美地工作并记录视频。对于服务器部分,当我从任何其他应用程序(来自PC)向相同的IP:PORT发送数据时,它可以接收数据。
总之,我想建立PC和Android之间使用套接字进行流媒体传输的通信通道。
以下是我的Android代码:
Socket soc=new Socket("192.168.1.3",8210);
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(soc);
...
...
// other Recorder setup steps
...
...
Recorder.setOutputFile(pfd.getFileDescriptor()); // working fine for sdcard
Recorder.setPreviewDisplay(holder.getSurface());
Recorder.prepare();
这是我的服务器应用程序,使用C#编写并在PC上运行:
socketForServer = new TcpClient("192.168.1.3", 8210);
NetworkStream networkStream = socketForServer.GetStream();
byte[] rData = new byte[1024];
networkStream.Read(rData, 0, 1024);
...
...
// process rData
...
...
我无法理解此处发生的问题。 我是否在正确的方向上?