您好我正在嘗試通過Google NearBy Connections從相機流式傳輸視頻。 連接建立和短信作品,但是當我送流服務器設備表面視圖顯示相機預覽但客戶得什麼,並沒有錯誤,這是流如何: 服務器:Google-NearBy視頻流客戶端的SurfaceView空白
SurfaceView surface;
public void sendCam(){
try {
surface = findViewById(R.id.surface);
ParcelFileDescriptor[] payloadPipe = ParcelFileDescriptor.createPipe();
ParcelFileDescriptor readFD = payloadPipe[0];
ParcelFileDescriptor writeFD = payloadPipe[1];
mCamera = Camera.open();
MediaRecorder rec = new MediaRecorder();
mCamera.lock();
mCamera.unlock();
rec.setCamera(mCamera);
rec.setVideoSource(MediaRecorder.VideoSource.CAMERA);
rec.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
rec.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
rec.setPreviewDisplay(surface.getHolder().getSurface());
rec.setOutputFile(writeFD.getFileDescriptor());
send(Payload.fromStream(readFD));
rec.prepare();
rec.start();
} catch (Exception e) {
}
}
接收客戶端:
@Override
protected void onReceive(Endpoint endpoint, Payload payload) {
if (payload.getType() == Payload.Type.STREAM) {
try {
MediaPlayer mMediaPlayer = new MediaPlayer();
// mMediaPlayer.setDataSource(payload.asStream().asParcelFileDescriptor().getFileDescriptor()); // did not work also
FileInputStream inputStream = new FileInputStream(payload.asStream().asParcelFileDescriptor().getFileDescriptor());
mMediaPlayer.setDataSource(inputStream.getFD());
mMediaPlayer.setDisplay(surface.getHolder());
mMediaPlayer.prepare();
mMediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我甚至不確定是否可以使用附近的視頻流,示例項目顯示如何流式傳輸音頻。這是api無法流式傳輸視頻,或者我的代碼有問題,它可能是什麼。
UPDATE:
}趕上(IOException異常E){給我的setDataSource失敗:狀態= 0x80000000的
是的我正在使用P2P_STAR,並將檢查onPayloadTransferUpdate(通過吐司?所以不需要更多的代碼,如緩衝或寫入臨時文件? –
是的有效載荷傳輸和裁減每秒或更少,服務器表面顯示相機預覽,但客戶端表面仍爲黑色 –
catch(IOException e)爲我提供setDataSource失敗:狀態= 0x80000000 –