微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决通过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());
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。