ich eine Aktivität haben, die eine BaseActivity erstreckt, in denen in der BaseActivity es schafft auch einen Thread, um einen Mediaplayer in allen Aktivitäten in einem anderen Thread, hier zu spielen ist mein Code:Spielen Mediaplayer über alle Aktivitäten
in meinem MainActivity:
public class MainActivity extends BasedActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
beginBGMusic();
}
}
in meinem BasedActivity:
public class BasedActivity extends AppCompatActivity {
MediaPlayer BGMusicPlayer;
Thread BGMusic;
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
}
protected void beginBGMusic(){
BGMusic = new Thread(){
public void run(){
BGMusicPlayer = MediaPlayer.create(this,R.raw.music.mp3);
}
};
BGMusic.start();
}
}
jedoch erwartet, dass der MediaPlayer.create() einen Kontext, verstehe ich nicht, wie shou ld ich setze den Kontext, wenn er in einem Thread und auch in einer anderen Klasse ist.
Kann jemand das Problem mit meinem Ansatz lösen?
Danke!
Wenn Sie den gleichen Media Player für mehrere Aktivitäten benötigen, sollten Sie den Media Player nicht innerhalb von Thread starten, sondern innerhalb von Service erstellen. Auf eine einzelne Instanz des Media Players kann dann über mehrere Aktivitäten zugegriffen werden. – Avi
Schafft die Erstellung in einem Thread die Idee, den Media Player über Aktivitäten hinweg spielen zu lassen? @Avi – KTOV
Wenn Sie einen Thread verwenden möchten, erstellen Sie eine Singlton-Klasse, sodass Sie den Thread nicht jedes Mal erstellen müssen, wenn Sie BaseActivity thread haben, sodass bei jedem Start einer neuen Aktivität ein neuer Thread erstellt wird. – Avi