我目前設計: 把 Android 手機 錄製的即時(實時)影像 傳遞到遠端Server,遠端Server可以同步live play目前做到功能是透過 MediaRecorder擷取影像,再以檔案方式送到Server端
問題是,我現在想要做到 Real-time 實時的功能,而非錄製完成之後在送到Server端。我的發送端 Android 架構如下Socket skt = new Socket(hostIP,port);
ParcelFileDescriptor pfd =ParcelFileDescriptor.fromSocket(skt);
....
....
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setOutputFile(pfd.getFileDescriptor());
.....
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
.....
mediaRecorder.start();而接受端 目前則是用Java寫的(在我的NB上面)// anyway , I don't think the file extentions will do any effect        
File video = new File (strDate+".3gpp");
FileOutputStream fos;
try {
fos = new FileOutputStream(video);byte[] data = new byte[1024];int count =-1;while( (count = fin.read(data,0,1024) ) !=-1)
{
  fos.write(data,0,count);                
  fos.flush();  
}                    
fos.close();
fin.close();但是目前接受到的檔案,都沒辦法開啟觀看,
我猜是檔案影片格式的問題?
不曉得有經驗的版有,能不能提供一點想法呢?
另外如果要即時同步播放接收到的影像在Java上面有什麼Class可以用嘛?我也有想過是不是要從 Camera Preview畫面嘗試去擷取 畫面frame
再一個一個送出去,但是又感覺太笨了。不曉得有沒有一些概念方向提供呢?非常謝謝