3

最近、この質問に出くわしましたが、手がかりがありません。「mediarecorder」を使用して、720P ビデオ ストリームを記録し、リアルタイムでサーバーに送信したいと考えています。これが私のコードです:

try{
    soc = new Socket(InetAddress.getByName(hostname), port);
} catch (UnknownHostException e){
    e.printStackTrace();
} catch (IOException e){
    e.printStackTrace();
}
CamcorderProfile pProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_720P);
//pProfile.videoFrameWidth = 1280;
//pProfile.videoFrameWidth = 720;
recorder.setProfile(pProfile);

//recorder.setOutputFile(myRecAudioFile.getAbsolutePath());//保存路径

pfd = ParcelFileDescriptor.fromSocket(soc);
recorder.setOutputFile(pfd.getFileDescriptor());
recorder.prepare();
recorder.start();

Android API レベルは 17 です。メディア レコーダーを起動すると、プログラムは 1 ~ 2 秒で終了します。このようなエラーログ:

IMediaDeathNotifier- media server died
Camera  -  Camera server died

同様の質問に遭遇したことがある人は、アドバイスをもらえますか?

4

1 に答える 1

2

のプレビュー表示を設定する必要があると思いますMediaRecorder

SurfaceView mySurfaceView = (SurfaceView) findViewById(R.id.my_surface_view);
Surface mySurface = camera.getHolder().getSurface();
recorder.setPreviewDisplay(mySurface);

どうやら Android では、プレビュー表示面(ref)を設定していない限り、ビデオを再生することはできません。

于 2013-04-04T02:32:28.937 に答える