2017-03-23 7 views
1

私はidを "R.raw.de3"のようにstrに格納していますが、これをMediaPlayerクラスで設定するにはint形式でIDを復元する必要があります。私はすでに生の文字列は常に0を返す

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

または

rawIdStr = "R.raw.de3"; or rawIdStr = "R.raw.de3.mp3"; 

を試してみました。このint型のIDは常に0

を返してみました10

とあまりに

int rawId = R.raw.class.getField(rawIdStr).getInt(null); 

と何も、なぜこれが動作しませんか?

答えて

1

"R.raw.de3"全体を使用せず、ファイル名にRおよびリソースタイプ識別子を付けないでください。これはあなたのメディアプレイヤーに渡すことができる入力ストリームを与える

Resources.openRawResource(R.raw.filename) 

はこれを使用してチェックアウトし、生のリソースを開くには

rawIdStr = "de3"; 
int rawId = getResources().getIdentifier(rawIdStr, "raw", packageName); 
+0

OMG、すべてをしたシンプルなディテールがうまくいきません。本当にthx。 – Anita

関連する問題