如何使用Intents录制视频?

时间:2012-06-16 19:32:47

标签: java android

我需要知道如何以编程方式录制视频。现在我使用这种结构:

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);

    }
}

打开应用程序后,相机也会打开。我录制了一些视频,但是如果我按下设备上的“后退”按钮,那么应用程序就会崩溃。请解释一下,我该怎么办?谢谢。

2 个答案:

答案 0 :(得分:1)

看起来正在按回键,数据(意图)没有设置。所以数据在这里可能为空

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

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

    }

答案 1 :(得分:1)

您在此声明中遇到问题

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

当您按下后退键时,录音将被取消,您将获得data.getData为空,因为没有录音。所以将您的代码更改为以下。

@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);
    }