-1
我想從資產中讀取我的聲音,這是一個遊戲,可以播放聲音來猜測。 現在我的聲音在原始文件夾中,現在我想從資源中讀取它們。 我谷歌它也是我發現了一些代碼工作正常,但我可以只讀第一聲。從資產文件夾中讀取聲音中的playnig聲音
走在我的代碼一看:
在這裏,我從原材料閱讀:
int sound_id = mContext.getResources().getIdentifier(SoundFile, "raw",
mContext.getPackageName());
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
loaded = true;
}
});
soundID = soundPool.load(this, sound_id, 1);
這裏我用的代碼,但它只是發揮出自己的第一部有聲
private static void initiate() {
XmlPullParserFactory pullParserFactory;
try {
pullParserFactory = XmlPullParserFactory.newInstance();
XmlPullParser parser = pullParserFactory.newPullParser();
InputStream in_s = G.context.getAssets().open("temp.xml");
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
parser.setInput(in_s, null);
routpic.parseXML(parser);
} catch (XmlPullParserException e) {
e.printStackTrace();
Log.i("EROR", "nabod");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.i("EROR", "nabod");
}
array_audio.clear();
for (int i = 0; i < routpic.names.size(); i++) {
array_audio.add(routpic.names.get(i));
Log.i("LOG2", "" + routpic.names.get(i));
}
}
private void play(int index) {
mediaPlayer.release();
index++;
index=soundID;
String s = "mp3/a" + index + ".mp3";
//Resources resources = getResources();
AssetFileDescriptor afd;
try {
afd = getAssets().openFd(s);
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
,並在我的資產:
<mp3>
<name>1</name>
</mp3>