我正在尝试动态播放声音。
我有一个资源目录,我已经创建下res文件夹,这是所谓的“原始”。这个目录包含mp3文件。
我想做的是用所有的文件名创建一个数组,当点击一个按钮时,下一个mp3 int和下一个索引将被加载到媒体播放器中,并可播放。
我找到了使用mediaplayer的代码
public class MainActivity extends ActionBarActivity {
Context context = this;
MediaPlayer mp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
mp = MediaPlayer.create(context, R.raw.sound);
final Button b = (Button) findViewById(R.id.Button);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
if (mp.isPlaying()) {
mp.stop();
mp.release();
mp = MediaPlayer.create(context, R.raw.sound);
} mp.start();
} catch(Exception e) { e.printStackTrace(); }
}
});
}
}
但我似乎找不到通过Array使用i索引上的歌曲名称来设置曲目切换的方法。
谢谢你的帮助
2条答案
按热度按时间vwkv1x7d1#
我已经找到了一个解决方案。我已经设置了所有的文件名在原始目录与相同的名称模式,得到每个文件的资源id的名称,并加载到播放器。
uajslkp62#
1.基于此来源:
dynamically getting all image resource id in an array
您可以尝试编写以下代码:
而
resArray[]
将包含您在raw
文件夹中拥有的所有id。2.如果你想使用文件名,你可以使用
Resources
类中的int getIdentifier(String name,String defType,String defPackage)方法。3.如果您想使用外部存储中的文件,您可以使用文件路径轻松创建
Media Player
示例(记住权限)