4

ビデオをキャプチャしようとしていますが、実行がrecorder.prepare()ステートメントに達すると、ルーチンが例外をスローします:

private void recordVideoStart(){
    if(recorder != null)
    {
        recorder.stop();
        recorder.release();
    }
    File file = new File("/sdcard/videoTest.3gpp");
    try {
        file.createNewFile();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    recorder = new MediaRecorder();
    recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    recorder.setOutputFile(file.getAbsolutePath());
    recorder.setVideoSize(176, 144);
    recorder.setVideoFrameRate(15);
    //recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
    recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    recorder.setPreviewDisplay(videoPreview.getSurface());

    try {
        recorder.prepare();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    recorder.start();
}

LogCat を見ると、「カメラが利用できません」という行に気付きました。

ここで何が問題なのか、ビデオキャプチャを有効にする方法を知っている人はいますか?

ありがとう!

4

3 に答える 3

1

カメラをレコーダーに設定する必要があります。

recorder.setCamera(Camera.open());
于 2009-07-27T14:25:31.800 に答える
0

マニフェストに次の権限があることを確認してください。 WRITE_EXTERNAL_STORAGESDカードに書き込むには必要です

  <uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
        <uses-permission android:name="android.permission.CAMERA"></uses-permission>
        <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
        <uses-feature android:name="android.hardware.camera" />
        <uses-feature android:name="android.hardware.camera.autofocus" />
于 2010-07-12T08:07:03.980 に答える
0

AndroidManifest.xml に追加しましたか:

<uses-permission android:name="android.permission.CAMERA" />
于 2010-01-15T09:05:29.403 に答える