我完全接收來自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