您好我正在尝试通过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 –