【问题标题】:Android MediaRecorder setOutPutFile() to stream using SocketAndroid MediaRecorder setOutPutFile() 使用 Socket 进行流式传输
【发布时间】:2011-03-01 17:50:26
【问题描述】:

我正在开发一个 Android 应用,它应该能够将视频流式传输到我网络上的本地服务器,而无需将其存储在 SD 卡上。

为此,我在 C# 中制作了简单的套接字应用程序,它监听特定的 IP:PORT

在 Android 部分,我使用套接字将 setOutputFile() 设置为此 IP:PORT。

此应用程序在 Android 手机上完美启动,但不显示预览,当我开始录制时,它无任何异常退出。它也不向网络发送任何数据流。

当我将setOutPutFile() 设置为 SD 卡时,它可以完美运行并且还可以录制视频。

对于服务器部分,当我将数据从任何其他应用程序(从 PC)发送到同一个 IP:PORT 时,它会接收数据。

简而言之,我想通过socket进行流式传输,建立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
 ...
 ...

我无法理解这里发生的问题。我是否朝着正确的方向前进?

【问题讨论】:

  • 你好Vinod,你能发布Android应用程序的源代码吗?我尝试做同样的事情,但视频卡住了,我不知道为什么......谢谢。
  • 嗨,对不起,我无法发布代码,因为它来自商业项目。如果你能把你的代码发给我,我会尽力解决这个问题。谢谢
  • 我基本上和你做同样的事情,但我在格式上苦苦挣扎......我收到了一些东西,但没有我认为的好的标题。我的问题在这里得到了很好的描述(mattakis.com/blog/kisg/20090708/…),但我不知道如何处理。你能只展示那一小部分吗?谢谢。
  • 您好 Vinod,我在录制时也遇到了问题。我的服务器端工作正常,但从我的 android 客户端我无法发送数据。所以,如果可能的话,请您提供一些示例源代码。

标签: android video-streaming android-camera


【解决方案1】:

我的服务器代码有问题。

我必须使用TcpListener 代替TcpClient

以下是正确的代码:

TcpListener listener = new TcpListener(ipAddress, 8210);
Socket s = listener.AcceptSocket();
NetworkStream ns = new NetworkStream(s);
.
.
.
//reading the data from stream
.
.
.

【讨论】:

  • 您好 Vinod,我正在尝试做同样的事情,但 .NET 服务器端在我的情况下无法正常工作,有机会获得您的工作代码吗?
  • @Giuseppe 代码现在是一个 IP,所以我不能分享代码,但是如果你能详细说明你的问题,那么我可以提供帮助。
  • 那么,您可以通过 PFD -> FD 通过 Socket 从 Android MediaPlayer 进行流式传输吗?
猜你喜欢
  • 1970-01-01
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 2014-06-25
  • 1970-01-01
  • 2014-05-09
  • 2011-12-04
相关资源
最近更新 更多