2011-01-08 11 views
1

Ich erstelle ein Spiel, und ich habe ein paar Audio-Clips im Spiel. Ich verwende den Audio-Pool und verwende nur zwei Audio-Clips. Sie sind beide mp3-Format, 1 ist 700kb und der andere ist 800 Bytes.Starten Sie Audio, sobald die App geladen ist Android App

Ich versuche, den 700kb Audioclip zu spielen, wenn das Spiel zum ersten Mal geladen wird. Es ist ein Hintergrundsound, der für immer wiederholt wird, solange die App geöffnet ist. Aber alles, was ich versucht habe, scheitert. Die einzige Möglichkeit, es zum Laufen zu bringen, war einen Thread beim Start zu starten und den Thread für 15 Sekunden schlafen zu lassen. Danach ruft es das Start-Audio auf und es wird abgespielt, aber wenn der Thread zerstört wird, wird der Sound damit gelöscht.

Ich gehe davon aus, dass die Audio-Pufferung ist vielleicht und deshalb ist es nicht am Start spielen? Müssen Sie auch alle Audio-Anrufe von einem Thread machen?

+0

Warum haben Sie nicht gepostet, was nicht funktioniert (Code)? – user432209

Antwort

1

Ich habe ganz gut es diesen Code in einer Aktivität onCreate() -Methode verwendet arbeiten:

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

    } 

Wenn es keine für diese Instanz Stopp Anweisungen, um es für alle Aktivitäten in der Anwendung spielen wird, und wenn du deine Anwendung beendest, wird sie immer noch abgespielt und wenn du zurückkommst, wird eine neue Instanz gleichzeitig über die alte spielen! Der Media Player ist ein eigener Prozess, daher denke ich, dass kein weiterer Thread benötigt wird.

Sind Sie sicher, dass etwas mit Ihrer MP3-Datei nicht stimmt und das System zu kämpfen hat?

Verwandte Themen