0

在我当前的工作代码中,我从显示一些缩略图的屏幕传递图像的引用。选择缩略图时,存储图像ID,然后在新活动中使用。Now, when a thumbnail is selected, I want to store the image id and a reference to the associated video file.

选择缩略图后,它会打开一个新活动,其中显示带有播放按钮的完整图像。选择播放按钮后,我希望它调用一个新活动,该活动将根据缩略图屏幕上保存的参考播放视频。除了使用参考播放视频外,我一切正常。当我硬编码文件名时,视频将播放。

这是我的代码的一些片段。

从缩略图类:

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.valueOf(vidID)。

我在想 Parcelabel 可能会在某处使用,但我没有关注如何使用它。我认为的另一种选择是将所有视频名称存储在一个数组中,并以某种方式使用它在 video.java 文件上动态创建文件名。

我会继续搜索,但非常感谢任何帮助。

4

1 回答 1

0

这是一种方法。也许有更简单的方法,但我不知道。

一些示例代码。

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());
于 2011-05-28T08:47:11.133 回答