我现在做了一个视频直播,PC 有个webbroadcast,把摄像头的图像直播给Android 手机。
手机已经能够接收到直播的视频了。
现在我想加一个按钮,给PC传命令,也就是写一个char 过去。单独运行也OK。
但是两个放到一起,就是在接受视频的同时,一按下按钮,执行到writeChar就force close。
我视频用的是端口 9889,发送字节是端口2500。
是不是不能和同一个PC的IP的不同端口通讯啊。
手机已经能够接收到直播的视频了。
现在我想加一个按钮,给PC传命令,也就是写一个char 过去。单独运行也OK。
但是两个放到一起,就是在接受视频的同时,一按下按钮,执行到writeChar就force close。
我视频用的是端口 9889,发送字节是端口2500。
是不是不能和同一个PC的IP的不同端口通讯啊。
解决方案 »
- 书籍推荐:关于android中间层
- Android 关于自动升级问题
- 在自定义View中如何引用(或者回调)activity?
- android 新浪微博 登陆失败
- activity 问题
- 关于 网上那些在linux 下 调试android 源码的文档
- 如何在apk安装程序中增加一个是否安装的确认对话框
- 关于ITelephony中getCellLocation返回结果转化的问题
- 求教:安卓开发遇到下面报错java.lang.IllegalStateException: Could not execute method of th
- Android Studio-- The path is not writable. Please choose a new location
- 做手机雷电游戏,什么样的算法才最合理?
- android中layout.mxl的一个问题
这个是发单字节命令的给PC的建立连接代码:
public void run(){
// Check if the Wi-Fi function is turned on
ConnectivityManager cm = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
if (!cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting()){ return;
}
server = new Socket();
InetSocketAddress isa = null;
try {
isa = new InetSocketAddress(InetAddress.getByName(host),port);
} catch (UnknownHostException e1) {
return;
}
try {
server.connect(isa, 20000); // 20 sec timeout
//server = new Socket(InetAddress.getByName(hostIP),PORT);
os = server.getOutputStream();
is = server.getInputStream();
} catch (IOException e) {
return;
}
}下面是接受视频连接的代码:
Socket socket = null;
try{
socket = new Socket();
socket.bind(null);
socket.setSoTimeout(SOCKET_TIMEOUT);
socket.connect(new InetSocketAddress(address, port), SOCKET_TIMEOUT); //obtain the bitmap
InputStream in = socket.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(in);