我已经在互联网上搜索了几天如何通过WiFi连接从Android手机到另一个Android手机实现视频流功能,但我似乎找不到任何有用的东西.我看了Android开发人员的示例代码,stackoverflow,谷歌,Android博客,但没有.我能找到的是用于流媒体的某种电话到桌面或桌面到电话的解决方案,但我在实现中无需借用.
我需要使用arduino ADK控制机器人,因此我使用2个电话,一个将安装在机器人上,另一个将接收来自机器人的视频流.我提到这个是因为我试图在广播时间和观看时间之间实现最小的延迟.
我正在编写2个应用程序,一个用于控制机器人的主应用程序(来自手持电话),它将控制从属应用程序并接收流,以及第二个从应用程序,它将在机器人绑定的手机上运行,控制电机/执行器/流媒体到主应用程序.不幸的是,我不能使用第三方应用程序.我需要将视频流代码集成到我的2个应用程序中.
实现这一目标有哪些选择?这也很难做到,因为我从未使用过视频流,我在Java和Android开发方面做得非常好.我应该如何编码/解码流,如何启动连接,是否需要使用UDP而不是TCP/IP?我真的不知道从哪里开始,没有任何示例代码.我很确定这可以实现.我找不到任何有用的东西让我开始朝着正确的方向前进.
我偶然发现spydroid, 但它在桌面上使用VLC,所以对我没有好处.
编辑:查看Cagney Moreau的博客.他详细介绍了如何实现这一点.
我正在尝试HTTP在我的应用程序中编写一个轻量级服务器,以feed动态生成MP3内置数据Android MediaPlayer.我不被允许将我的内容存储在SD card.
我的输入数据基本上是无限长度的.我告诉MediaPlayer它的数据源基本上应该是这样的"http://localhost/myfile.mp3".我有一个简单的服务器设置,等待MediaPlayer发出此请求.但是,MediaPlayer不是很合作.首先,它创建HTTP GET并尝试获取整个文件.如果我们尝试简单地将数据转储到其中,socket那么我们尝试使用HTTPRange标头以块的形式写入数据. MediaPlayer不喜欢这个并且不会继续请求后续的块.
有没有人直接将数据流成为MediaPlayer?我需要实现一个RTSP或Shoutcast服务器吗?我只是错过了批评HTTP header吗?我应该在这里使用什么策略?
我有两个简单的程序,服务器和客户端,都在localhost.我想要做的是通过套接字将视频从服务器流式传输到客户端,客户端可以使用套接字的filediscriptor来播放它.首先,我尝试发送一些消息,客户端可以接收它.之后,我将视频的几个字节从服务器的卡发送到客户端.客户端可以接收这些字节但无法播放.有谁知道如何解决这个问题?
这是我的服务器和客户端代码片段:
服务器:
//Receive request from client.
Socket client=serversocket.accept();
System.out.println("accept");
//Receive client message.
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
String str=in.readLine();
System.out.println("read:"+str);
//Send message to client.
//PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())),true);
//out.println("server message");
FileInputStream fis=new FileInputStream("/sdcard/toystory3.3gp");
byte buffer[]=new byte[2000];
fis.read(buffer,0,20);
DataOutputStream out=new DataOutputStream(client.getOutputStream());
out.write(buffer,0,20);
in.close();
out.close();
client.close();
System.out.println("close");
Run Code Online (Sandbox Code Playgroud)
客户:
Socket socket=new Socket("127.0.0.1",4444);
String message="Initial"+"\r\n";
//Send message to server.
PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.println(message);
//Receive message from server.
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String msg=br.readLine();
//ParcelFileDescriptor pfd=ParcelFileDescriptor.fromSocket(socket);
//MediaPlayer m=new MediaPlayer();
//m.setDataSource(pfd.getFileDescriptor());
//m.prepare();
//m.start(); …Run Code Online (Sandbox Code Playgroud) 我想为Android和iOS本地开发一个实时通信(带视频和音频)应用程序.理想情况下,它也可以连接到浏览器,但移动平台对于这种情况最重要.
我一直在研究WebRTC,因为它是一个(相对)新协议,它似乎不是最好的实现方法.在iOS上实现它似乎也非常复杂/令人沮丧.
我只是想知道是否有其他人知道更好的WebRTC替代方案,它可以在iOS和Android上实现免费且易于实现吗?
编辑:我有webRTC目前正在为Android本机工作但是我仍然遇到本地webRTC for iOS的问题.有没有人有任何可以帮助我入门的最新信息/教程?