我需要知道如何以编程方式录制视频。现在我使用这种结构:
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);
}
}
打开应用程序后,相机也会打开。我录制了一些视频,但是如果我按下设备上的“后退”按钮,那么应用程序就会崩溃。请解释一下,我该怎么办?谢谢。
答案 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);
}