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

看起来你正在按下返回键并且数据(意图)没有被设置。所以数据在这里可能为空

 @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 回答