我完全接收来自C# Server
和流式视频的Android
中的图像。问题是,我总是打开和关闭每个图像的插座。我如何才能在仅创建一个套接字时接收图像。任何帮助,将不胜感激。Android通过tcp socket从c#服务器接收图像
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView)findViewById(R.id.textView1);
etip=(EditText)findViewById(R.id.editText1);
// etip.setText("192.168.1.5");
etip.setText("10.0.2.2");
imgview=(ImageView)findViewById(R.id.imageView1);
btn=(Button)findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
try {
serverAddr = InetAddress.getByName(etip.getText().toString());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Log.d("TCP", "C: Connecting...");
}
finally
{
}
try
{
{
mHandler = new Handler();
mHandler.post(connectSocket);
}
}
catch(Exception ex)
{
}
}
});
}
private Runnable connectSocket=new Runnable() {
@Override
public void run() {
{
try {
socket = new Socket(serverAddr, 4444);
DataInputStream dis;
try {
dis=new DataInputStream(socket.getInputStream());
int bytesRead;
byte[] pic = new byte[5000*1024];
bytesRead = dis.read(pic, 0, pic.length);
bitmapimage = BitmapFactory.decodeByteArray(pic, 0, bytesRead);
} catch(Exception e) {
Log.e("TCP", "S: Error", e);
} finally {
socket.close();
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
Log.e("TCP", "C: UnknownHostException", e);
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
Log.e("TCP", "C: IOException", e);
e.printStackTrace();
}
imgview.setImageBitmap(bitmapimage);
imgview.invalidate();
}
mHandler.postDelayed(this, 0);
} //run end
};
}
我想在单个插槽上传输视频,但我不知道如何做到这一点。如果你能指导我,我会非常感激 – waqasanwaar
流式媒体可能相当困难,或者你可以用这种非常简单的方式。但是,流式传输相当昂贵,因此如果此应用程序有意投放市场,您需要仔细规划(架构服务器)。我建议你使用像Wowza这样的流媒体服务器解决方案。这里是他们的网站的教程http://www.wowza.com/forums/content.php?36-How-to-publish-and-play-a-live-stream-(RTMP-or-RTSP-RTP-基于编码器) – Jason
然后,你需要提供rtsp url,像rtsp://something.com到mediaview。这个过程很容易,因为它已经内置于 – Jason