2012-07-07 24 views
0

我重寫了我的聲音類以捕獲異常,以便在調用聲音時不再使應用程序崩潰。問題依然存在,聲音文件將無法播放。它運行並在模擬器上播放。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); 
+0

你在哪裏保存你的聲音文件?什麼文件夾? – jmishra 2012-07-07 21:42:10

+0

「我的文件結構爲聲音文件是資源>原始> soundfiles.ogg」 – Kevin 2012-07-07 21:44:03

+0

您可以發佈您設置上下文和id的行。可能是你這樣做的方法 – jmishra 2012-07-07 21:52:36

回答

0

聲音文件已被轉換爲允許模擬器讀取文件但手機無法正確訪問它的方式。在用新鮮的聲音替換所有的聲音文件再次文件的程序運行,因爲它被認爲:)

這裏有一些事情,幫助我找出問題的人這個問題在未來:

http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/ http://code.google.com/p/android-apktool/issues/detail?id=153 Problem while opening Asset File with the help of Content Provider

雖然其中一些沒有解決我的問題,他們使它有可能找到解決方案。