2

これは私のコードです:

VideoView vd;
vd = (VideoView) findViewById(R.id.videoview2);
String path = "android.resource://" + getPackageName() + "/"
                        + R.raw.video1;
                vd.setVideoURI(Uri.parse(path));
                vd.start();

これは機能しますが、再生するビデオがたくさんあるため、R.raw.video1 を文字列にしたいと考えています。

だから私が欲しいのはこれです:

String videoResource = "R.raw.video1"
 String path = "android.resource://" + getPackageName() + "/"
                            + videoResource;

残念ながら、これは機能しません。どうすれば機能しますか?

4

1 に答える 1

8

それが機能するには、リソースの識別子が必要です。これは、次を使用して名前で取得できます。

int id = getResources().
    getIdentifier("name_of_resource", "id", getPackageName());

したがって、新しいコードは次のようになります。

int videoResource = getResources().
    getIdentifier("video1", "raw", getPackageName());
String path = "android.resource://" + getPackageName() + "/" + videoResource;
于 2012-09-28T23:57:56.677 に答える