0

次のコードは、ビデオの録画を許可していません。このコードはボタンから呼び出されますが、ボタンがフリーズします。ビデオを録画するためにカムコーダー プロファイルを使用しようとしています。

    public void startRecording() {

    mCamera.unlock();
    mrec.setCamera(mCamera);
    CamcorderProfile cpHigh = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
    mrec.setProfile(cpHigh);        

    File dir = new File(SdCardPath + Directory);
    if (!dir.exists()) {
        if (dir.mkdir()) {
            Log.v(STORAGE_SERVICE, "Created directory");
        } else {
            Log.v(STORAGE_SERVICE, "Failed to create Directory");
        }
    }

    FullFilePath = SdCardPath + Directory + RecordFileName;

    mrec.setOutputFile(FullFilePath);
    mrec.setPreviewDisplay(surfaceHolder.getSurface());
    try {
        mrec.prepare();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    mrec.start();
}
4

1 に答える 1

1

スローされた例外をキャッチするために常に最善を尽くします。

public void startRecording() {

    try {
        mCamera.unlock();
    catch (RuntimeException ex){
        //  looks like camera was locked in the first place, who is using it? 
    }
    mrec.setCamera(mCamera);

            ///...the rest of your code.
}
于 2012-10-26T15:15:16.447 に答える