通过Intent传递对原始视频文件的引用,并将其用于其他活动中

问题描述

|| 在当前的工作代码中,我从显示一些缩略图的屏幕传递图像的引用。选择缩略图后,将存储图像ID,然后将其用于新活动中。现在,当选择了缩略图时,我想存储图像ID和对相关视频文件的引用。 选择缩略图后,它将打开一个新活动,该活动将显示带有播放按钮的完整图像。选择播放按钮后,我希望它调用一个新的活动,该活动将基于保存在缩略图屏幕上的参考来播放视频。我可以使用参考文件来播放视频,但一切正常。当我硬编码文件名时,将播放视频。 这是我的代码片段。 从缩略图类:
public void onClick(View v) {
    Intent fullImage = new Intent(standard_main.this,full_image.class);
    Intent playVideo = new Intent(standard_main.this,video.class);

    switch(v.getId()){

    case R.id.img_standard1:
        fullImage.putExtra(\"Full\",R.drawable.img_standard1);
        playVideo.putExtra(\"VideoFile\",R.raw.standard); // added to try to reference video for future use
        startActivity(fullImage);
        break;
从full_image类:
if (x >= leftPlayPoint && x < rightPlayPoint && y >= topPlayPoint && y < bottomPlayPoint){
            startActivity(new Intent(\"com.example.PLAYVIDEO\"));
在我的视频课上:
VideoView vd = (VideoView) findViewById(R.id.VideoView);
    int vidID = getIntent().getIntExtra(\"VideoFile\",0);
    Uri uri =  Uri.parse(\"android.resource://com.example/\"+ R.raw.standard);
我想以某种方式使用vidID代替R.raw.standard。 如果我正确理解,则不能使用vidID,因为它是一个Int,而Uri.parse需要一个字符串。我尝试使用toString()将Int转换为String,但是我怀疑仅将实际数字转换为字符串,并且确实引入了实际文件名。我也尝试过String.valueOf(vidID)。 我想可能在某个地方使用Parcelabel,但是我没有遵循如何使用它。我认为的另一个选择是将所有视频名称存储在一个数组中,并以某种方式使用它在video.java文件上动态创建文件名。 我会继续搜索,但任何帮助将不胜感激。     

解决方法

        这是做到这一点的一种方法。也许有一种更简单的方法,但是我不知道。 一些示例代码。
int myResourceId = getIntent().getIntExtra(\"AudioFile\",0);

StringBuilder sb = new StringBuilder();
// get full resource path,e.g. res/raw/audio.mp3
sb.append(getResources().getString(myResourceId));
// delete res folder
sb.delete(0,sb.indexOf(\"/\"));
// delete file extension
sb.delete(sb.indexOf(\".mp3\"),sb.length());
// insert package at beginning
sb.insert(0,\"android.resource://com.example\");

Uri uri = Uri.parse(sb.toString());
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...