1

ゲームを作成しており、ゲーム内にいくつかのオーディオ クリップがあります。私はオーディオ プールを使用しており、2 つのオーディオ クリップしか使用していません。どちらも mp3 形式で、1 つは 700kb、もう 1 つは 800 バイトです。

ゲームが最初にロードされたときに、700kb のオーディオ クリップを再生しようとしています。アプリが開いている限り永遠にループするバックグラウンド サウンドです。しかし、私が試したことはすべて失敗します。私がそれを機能させることができた唯一の方法は、起動時にスレッドを開始し、スレッドを15秒間スリープさせることです。その後、開始オーディオを呼び出して再生しますが、スレッドが破棄されると、それでサウンドが殺されます。

おそらくオーディオがバッファリングされていると思いますが、それが最初に再生されない理由ですか? また、スレッドからすべての音声呼び出しを行う必要がありますか?

4

1 に答える 1

1

Activity onCreate() メソッドでこのコードを使用したところ、正常に動作しています。

public class LaunchActivity extends Activity {
       private MediaPlayer mp;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.whatever);

        setVolumeControlStream(AudioManager.STREAM_MUSIC); 
        mp = MediaPlayer.create(this, R.raw.a);
        mp.start();

    }

このインスタンスに停止指示がない場合、アプリケーション内のすべてのアクティビティで再生が続行されます。アプリケーションを終了しても再生され、戻ってくると、新しいインスタンスが古いインスタンスを同時に再生し始めます。 ! メディア プレーヤーは独自のプロセスなので、別のスレッドは必要ないと思います。

MP3 ファイルに何か問題があり、システムが苦労していると確信していますか?

于 2011-01-08T16:35:36.877 に答える