首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从图库中打开视频并将VideoView指向新活动

,可以通过以下步骤实现:

  1. 首先,需要在AndroidManifest.xml文件中添加适当的权限:
代码语言:txt
复制
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  1. 在你的Activity中,创建一个按钮或其他触发事件的UI元素,并为其添加点击事件监听器。在点击事件监听器中,打开图库选择视频文件:
代码语言:txt
复制
// 导入所需的类
import android.content.Intent;
import android.net.Uri;
import android.provider.MediaStore;

// 在你的Activity中的某个方法中添加以下代码
// 创建一个Intent,用于打开图库选择视频
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
intent.setType("video/*"); // 限制选择视频文件
startActivityForResult(intent, REQUEST_CODE_SELECT_VIDEO);
  1. 在同一个Activity中,重写onActivityResult方法,以获取从图库返回的视频文件URI,并将其传递给新的活动:
代码语言:txt
复制
// 在你的Activity中添加以下代码
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == REQUEST_CODE_SELECT_VIDEO && resultCode == RESULT_OK) {
        Uri videoUri = data.getData();

        // 创建一个新的Intent,将视频URI传递给新的活动
        Intent intent = new Intent(this, NewActivity.class);
        intent.putExtra("videoUri", videoUri.toString());
        startActivity(intent);
    }
}
  1. 在新的活动(NewActivity)中,获取传递过来的视频URI,并将其设置给VideoView进行播放:
代码语言:txt
复制
// 在新的活动(NewActivity)中添加以下代码
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_new);

    // 获取传递过来的视频URI
    String videoUriString = getIntent().getStringExtra("videoUri");
    Uri videoUri = Uri.parse(videoUriString);

    // 在布局文件中添加一个VideoView元素,并在代码中获取它的引用
    VideoView videoView = findViewById(R.id.videoView);

    // 设置VideoView的视频URI
    videoView.setVideoURI(videoUri);

    // 开始播放视频
    videoView.start();
}

以上步骤中,我们首先在原始的Activity中打开图库选择视频文件,并获取选择的视频文件的URI。然后,我们创建一个新的Intent,将视频URI作为额外数据传递给新的活动。在新的活动中,我们获取传递过来的视频URI,并将其设置给VideoView进行播放。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):提供高可靠、低成本的云端存储服务,适用于存储和处理各种类型的媒体文件。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云移动直播(LVB):提供高效、低延迟的移动直播服务,可用于实时传输和播放音视频内容。详情请参考:https://cloud.tencent.com/product/lvb
  • 腾讯云云服务器(CVM):提供灵活可扩展的云服务器实例,适用于托管应用程序和网站。详情请参考:https://cloud.tencent.com/product/cvm
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android开发笔记(一百二十五)自定义视频播放器

    在Android中播放视频的方式有两种: 1、使用MediaPlayer结合SurfaceView进行播放。其中通过SurfaceView显示视频的画面,通过MediaPlayer来设置播放参数、并控制视频的播放操作;该方式的具体说明参见《Android开发笔记(五十七)录像录音与播放》。 该方式的好处是灵活性强,可随意定制。缺点是编码复杂,连开始/暂停的按钮都要自己实现。 2、使用VideoView结合MediaController进行播放。VideoView其实是从SurfaceView扩展而来,并在内部集成了MediaPlayer,从而实现视频画面与视频操作的统一管理;而MediaController则是一个简单的播放控制条,它实现了基本的控制按钮,如开始/暂停按钮、上一个/下一个按钮、快进/快退按钮,以及进度条等控件;把VideoView与MediaController关联起来,便是一个类似于Window Media Player的精简版播放器。 该方式的好处是简单易用,编码容易。缺点是可定制差,难以扩展,想给按钮换个样式都不行。 但是不积跬步无以至千里,如果我们要定制一个好用好看的播放器,还是得先把笨拙的VideoView与MediaController搞清楚才行。就像穷国一开始没有汽车工业,那只能从研究拖拉机开始,没办法一蹴而就强行大跃进呀。

    04
    领券