我正在開發一款Android應用程序,該應用程序應該能夠將視頻流式傳輸到本地網絡上的本地服務器,而無需將其存儲在SD卡上。Android MediaRecorder setOutPutFile()使用套接字流式傳輸
爲此,我已在C#簡單的socket應用程序,偵聽特定IP:使用套接字端口:端口
在Android上一部分,我已經設置setOutputFile()
這個IP。
此應用程序在Android手機上完美啓動,但不顯示預覽,當我開始錄製時,它無任何例外退出。它也不會向網絡發送任何數據流。
當我將setOutPutFile()
設置爲SD卡時,它可以很好地工作並記錄視頻。
對於服務器部分,當我從任何其他應用程序(從PC)發送數據到相同的IP:PORT時,它會接收數據。
總之,我想建立PC和Android之間使用socket進行流媒體的通信渠道。
這裏是我的Android代碼:
Socket soc=new Socket("192.168.1.3",8210);
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(soc);
...
...
// other Recorder setup steps
...
...
Recorder.setOutputFile(pfd.getFileDescriptor()); // working fine for sdcard
Recorder.setPreviewDisplay(holder.getSurface());
Recorder.prepare();
這裏是我的服務器應用程序,在C#中,運行於PC:
socketForServer = new TcpClient("192.168.1.3", 8210);
NetworkStream networkStream = socketForServer.GetStream();
byte[] rData = new byte[1024];
networkStream.Read(rData, 0, 1024);
...
...
// process rData
...
...
我無法理解問題這是發生在這裏。我正朝着正確的方向嗎?
維諾德·你好,你能放開Android應用程序的源代碼?我嘗試做同樣的事情,但視頻凍結,我不知道爲什麼......謝謝。 – Rob 2011-05-03 06:12:37
嗨,對不起,我無法發佈代碼,因爲它來自商業項目。如果您可以向我發送您的代碼,我會嘗試解決此問題。謝謝 – 2011-05-03 07:33:13
我基本上和你做同樣的事情,但我在格式上苦苦掙扎......我收到了一些東西,但沒有我想到的好頭。我的問題在這裏很好地描述(http://www.mattakis.com/blog/kisg/20090708/broadcasting-video-with-android-without-writing-to-the-file-system),但我不知道如何處理。 你可以只顯示一小部分? 謝謝。 – Rob 2011-05-05 07:37:47