首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android 播发视频

2013-08-16 
android 播放视频?本帖最后由 kaly_liu 于 2013-08-13 15:23:29 编辑安卓客户端是利用socket进行摄像头数

android 播放视频?
本帖最后由 kaly_liu 于 2013-08-13 15:23:29 编辑 安卓客户端是利用socket进行摄像头数据的传送的,在另一台android设备上如何接收并播放?


Socket tempSocket = new Socket(ipname, port);
                outsocket = tempSocket.getOutputStream();
                //写入头部数据信息
            String msg=java.net.URLEncoder.encode("PHONEVIDEO|"+username+"|","utf-8");
                byte[] buffer= msg.getBytes();
                outsocket.write(buffer);
                //将数据转成 数据流
                ByteArrayInputStream inputstream = new ByteArrayInputStream(myoutputstream.toByteArray());
                int amount;
                //在while括号里面 读取数据的个数 amount
                while ((amount = inputstream.read(byteBuffer)) != -1) {
                    outsocket.write(byteBuffer, 0, amount);//将 byteBuffer里的数据发送出去 ,一共有amount个
                }
                myoutputstream.flush();
                myoutputstream.close();
                tempSocket.close();           



if(data!=null)
      {
        YuvImage image = new YuvImage(data,VideoFormatIndex, VideoWidth, VideoHeight,null);
        if(image!=null)
        {
        ByteArrayOutputStream outstream = new ByteArrayOutputStream();
        //在此设置图片的尺寸和质量 


        image.compressToJpeg(new Rect(0, 0, (int)(VideoWidthRatio*VideoWidth), 
        (int)(VideoHeightRatio*VideoHeight)), VideoQuality, outstream);  
        outstream.flush();
        //启用线程将图像数据发送出去
        Thread th = new MySendFileThread(outstream,pUsername,serverUrl,serverPort);
        th.start();  
        }


这两段代码是我发送端的 部分程序。
[解决办法]
socket太不稳定了,楼主能搞得定?
[解决办法]
你发送的是jpeg类型的数据,我觉得你应该在tcp的基础上定义一个私有协议,比如前四个字节是jpeg的长度,然后后面是实际的jpeg数据,然后接收端先收四个字节得到长度后,再接受长度个字节,然后将jpeg转化给bitmap在ImageView上面show出来。如果是视频的话就没那么简单了,需要双方协商视频格式
[解决办法]
一般采用RTP协议封包后发出

热点排行