こんにちは、私は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は:失敗した状態MEを与えるビデオストリームを送信することからあなたを排除近所の接続では何もありません0x80000000の
はい私はP2P_STARを使用しています。(トーストによって、バッファリングやテンポラリファイルへの書き込みのようなコードは必要ありませんか?) –
はい、ペイロードは毎秒以下のように転送され、カメラのプレビューが、クライアントの表面が黒いまま表示して –
キャッチ(例外:IOException e)はsetDataSourceが失敗したMEに与えるものです。:ステータス= 0x80000000から –