0

プログラムでビデオを録画する方法を理解する必要があります。今、私はこの構造を使用しています:

public class AndroidLearningActivity extends Activity {
    /** Called when the activity is first created. */   
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.main);

        Intent captureVideoIntent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
        startActivityForResult(captureVideoIntent, 100);
    }  

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        Uri uri=data.getData();
        Log.e("result", "result:"+resultCode);

    }
}

アプリケーションを開くと、カメラも開きます。ビデオを録画しましたが、デバイスの「戻る」ボタンを押すと、アプリケーションがクラッシュします。説明してください、どうすればいいですか?ありがとうございました。

4

2 に答える 2

1

バックキーを押しているように見え、データ(意図)が設定されていないため、ここでデータがnullになる可能性があります

 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (resultCode == RESULT_OK) { 
        Uri uri=data.getData();
        Log.e("result", "result:"+resultCode);
       }

    }
于 2012-06-16T19:43:22.243 に答える
1

このステートメントには問題があります

        Uri uri=data.getData();
        Log.e("result", "result:"+resultCode);

戻るボタンを押すと、記録がキャンセルされ、記録が行われdata.getDataないため null になります。コードを次のように変更します。

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (data != null) {
            Uri uri = data.getData();
            Log.e("result", "result:" + resultCode);
        }

        super.onActivityResult(requestCode, resultCode, data);
    }
于 2012-06-16T19:45:03.757 に答える