0

例外をキャッチするようにサウンド クラスを書き直して、サウンドが呼び出されたときにアプリケーションがクラッシュしないようにしました。サウンドファイルが再生されないという問題はまだ残っています。エミュレーター上で実行および再生されます。

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);
4

1 に答える 1

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 コンテンツ プロバイダーを使用してアセット ファイルを開く際の問題

これらのいくつかは私の問題を解決しませんでしたが、解決策を見つけることができました.

于 2012-07-07T23:04:22.563 に答える