android startActivityForResult用视频代替
时间: 2024-01-09 19:43:05 浏览: 204
你想要在 Android 应用中使用视频代替 startActivityForResult 来完成某些操作,这可以通过以下几个步骤来实现:
1. 在你的布局文件中添加一个 VideoView 组件,用于显示视频。
2. 从相册或者其他途径获取视频的 Uri,可以使用 Intent.ACTION_PICK 或者 Intent.ACTION_GET_CONTENT,将视频的 Uri 传递给 VideoView 控件。
3. 在代码中设置 VideoView 的监听器,当视频播放完成时,获取视频的 Uri 并将其返回给上一个 Activity。
4. 在 onActivityResult 方法中接收返回的 Uri,并进行相应的操作。
下面是一个简单的示例代码:
```
// 在布局文件中添加 VideoView 组件
<VideoView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
// 在 Activity 中实现视频选择和播放的逻辑
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_VIDEO_CODE = 1;
private VideoView videoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取 VideoView 组件
videoView = findViewById(R.id.video_view);
// 打开相册选择视频
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, REQUEST_VIDEO_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_VIDEO_CODE && resultCode == RESULT_OK) {
// 获取选择的视频 Uri
Uri videoUri = data.getData();
// 设置 VideoView 控件的监听器
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// 视频播放完成后返回视频的 Uri
Intent resultIntent = new Intent();
resultIntent.setData(videoUri);
setResult(RESULT_OK, resultIntent);
finish();
}
});
// 将视频 Uri 设置给 VideoView 控件
videoView.setVideoURI(videoUri);
videoView.start();
}
}
}
```
需要注意的是,如果你想要在 Activity 中使用视频代替 startActivityForResult,你需要在视频播放完成后手动调用 setResult 方法并将视频的 Uri 返回给上一个 Activity。同时,在上一个 Activity 中需要重写 onActivityResult 方法来接收返回的视频 Uri。
阅读全文