我重写了我的声音类以捕获异常,以便在调用声音时它不再使应用程序崩溃。问题仍然是声音文件无法播放。它在模拟器上运行和播放。
在我用我的 HTC VIVID 测试之前没有错误。我觉得我的手机不是问题。
我的声音文件的文件结构是 Resources>raw>soundfiles.ogg
这是我用于声音类的代码。
public class Sound extends Activity
{
MediaPlayer mp;
Context context;
public Sound (Context res)
{
context=res;
}
public void playSound(int ID)
{
try {
mp = MediaPlayer.create(context, ID);
mp.start();
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
mp = null;
}
});
} catch (Exception exception) {
}
}
}
这是日志猫:
E/AndroidRuntime( 981): FATAL EXCEPTION: main
E/AndroidRuntime( 981): android.content.res.Resources$NotFoundException: File r
es/raw/soundfile.ogg from drawable resource ID #0x7f040000
E/AndroidRuntime( 981): at android.content.res.Resources.openRawResource
Fd(Resources.java:1081)
E/AndroidRuntime( 981): at android.media.MediaPlayer.create(MediaPlayer.
java:762)
E/AndroidRuntime( 981): Caused by: java.io.FileNotFoundException: This file can
not be opened as a file descriptor; it is probably compressed
如何解决此压缩问题?
这是设置的大致轮廓。我不认为这是问题的一部分。
final Context res;
Sound fx;
public GameView(Context context) //reference to activity
{
super(context);
res=context;
fx=new Sound(res);
public boolean onTouchEvent(MotionEvent event)
{
fx.playSound(R.raw.sound);