Ich versuche Soundpool zu verwenden, um Sound in meiner Android App zu spielen. Ich habe 3 Aktivitäten, bei denen ich Sound spielen muss. Kann ich Sounds also nur einmal beim Start der Anwendung laden? Kann ich eine globale Klasse erstellen und den gesamten Sound einmal laden und in anderen Aktivitäten verwenden?Loading Sound einmal für alle Aktivitäten
0
A
Antwort
0
können Sie versuchen, dieses Beispiel
//start service
Intent svc=new Intent(this, BackgroundSoundService.class);
startService(svc);
//Add in manifest file
<service
android:enabled="true"
android:name="com.package.name.BackgroundSoundService" />
public class BackgroundSoundService extends Service {
private static final String TAG = null;
MediaPlayer player;
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
player = MediaPlayer.create(this, R.raw.idil);
player.setLooping(true); // Set looping
player.setVolume(100,100);
}
public int onStartCommand(Intent intent, int flags, int startId) {
player.start();
return 1;
}
public void onStart(Intent intent, int startId) {
// TO DO
}
public IBinder onUnBind(Intent arg0) {
// TO DO Auto-generated method
return null;
}
public void onStop() {
}
public void onPause() {
}
@Override
public void onDestroy() {
player.stop();
player.release();
}
@Override
public void onLowMemory() {
}
}
0
Ja Sie Ihr Audio in einer globalen Klasse laden. Glücklicherweise stellt uns Android eine solche Klasse namens Application.java zur Verfügung.
public class TestApp extends Application {
private static final String TAG = "TestApp";
private static TestApp sTestApp;
private MediaPlayer mMediaPlayer;
@Override
public void onCreate() {
super.onCreate();
sTestApp = this;
mMediaPlayer = MediaPlayer.create(this, R.raw.music);
mMediaPlayer.setVolume(1, 1); //Volume should have to be between 0.0 to 1.0
}
public static TestApp getInstance() {
return sTestApp;
}
public void play() {
mMediaPlayer.start();
}
}
Dann erklärt dies als Anwendungsklasse in Ihrem Manifest
<application
android:name=".TestApp"
android:label="@string/app_name"
android:theme="@style/AppTheme">
.........
</application>
Jetzt wird diese Klasse automatisch gestartet werden, wenn die Anwendung startet und zerstört wird, nachdem Ihre Anwendung vollständig zerstört.
Jetzt können Sie die Audiowiedergabe von
TestApp.getInstance().play();
Aufruf aus, wo immer Sie wollen.
Verwandte Themen
- 1. Symbolleiste für alle Aktivitäten festlegen
- 2. android loading circle (Spinner) zwischen zwei Aktivitäten
- 3. Android: Stop-Sound-Dateien auf einmal spielen
- 4. Standard-Authentifizierung einmal für alle
- 5. Wie spezifischen Aktivitäten nicht alle Aktivitäten
- 6. Set Orientierung für alle Aktivitäten festgelegt
- 7. Android Statusleiste Farbeinstellung für alle Aktivitäten
- 8. android global Objektreferenz für alle Aktivitäten
- 9. Wie Hintergrund für alle Aktivitäten festlegen?
- 10. Sound nur einmal für doppelte Android-Benachrichtigung wiedergeben
- 11. Activity.finish() beendet alle Aktivitäten
- 12. Sound spielt mehrere Male auf einmal
- 13. wache alle Aktivitäten des Repository
- 14. Facebook API abrufen "Alle Aktivitäten"
- 15. Spielen Mediaplayer über alle Aktivitäten
- 16. Fertig Alle Aktivitäten von Rundfunkempfänger
- 17. JSON.parse - Set reviver einmal für alle
- 18. Dolch-Injektion für verschiedene Aktivitäten
- 19. So zeigen Sie meine Anwendung alle Aktivitäten Layout im Querformat mit Landscape-Flag nur einmal
- 20. Wie man einzelne Methode für alle Aktivitäten in Android verwenden?
- 21. Mono für Android - Alle Aktivitäten in der Hochformat-Ausrichtung
- 22. Google API GPS-Standort Android für alle Aktivitäten verfügbar
- 23. Der Sound sollte nur einmal abgespielt werden, spielt aber zweimal.
- 24. Loading Spinner für Alamofire
- 25. Verwenden Toolbar über alle Aktivitäten (Android)
- 26. Swipetabs für Aktivitäten
- 27. Dienst für mehrere Aktivitäten
- 28. Alle Tabellen auf einmal reparieren
- 29. Popup einmal alle 5 Minuten
- 30. Werden .dll-Dateien einmal für jedes Programm oder einmal für alle Programme geladen?
Probieren Sie die Dienste aus, da Musik immer ein Hintergrundjob ist, es sei denn, Sie geben einen Benutzercontroller, der damit umgehen kann. – sumandas