我尝试从资源文件夹中访问mp3文件,然后设置数据源,准备它们,然后在单击图像按钮时播放它们。不过,我一直在getAssets()上遇到错误。我知道我需要一些背景但我不知道如何在我的情况下这样做。我试过的每一种方式都给了我一些错误。
公共类SoundFile {
public final MediaPlayer mp;
ImageButton position;
public SoundFile(Activity activity, int soundfile, int imgButtonId) {
this.mp = new MediaPlayer();
this.position = (ImageButton)activity.findViewById(imgButtonId);
this.position.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
mp.reset();
AssetFileDescriptor afd;
afd = getAssets().openFd(mp);
mp.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
mp.prepare();
mp.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}});}}
答案 0 :(得分:3)
试试这个 替换
afd = getAssets().openFd(mp);
与
afd =activity.getAssets().openFd(mp);