我重寫了我的聲音類以捕獲異常,以便在調用聲音時不再使應用程序崩潰。問題依然存在,聲音文件將無法播放。它運行並在模擬器上播放。Android:聲音播放錯誤。壓縮問題?
沒有錯誤,直到我測試我的HTC VIVID。我不認爲我的手機是問題。
我對聲音文件的文件結構是資源>原材料> 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) {
}
}
}
這裏是logcat的:
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);
你在哪裏保存你的聲音文件?什麼文件夾? – jmishra 2012-07-07 21:42:10
「我的文件結構爲聲音文件是資源>原始> soundfiles.ogg」 – Kevin 2012-07-07 21:44:03
您可以發佈您設置上下文和id的行。可能是你這樣做的方法 – jmishra 2012-07-07 21:52:36