gpt4 book ai didi

android - 在所有 Activity 中播放 MediaPlayer

转载 作者:行者123 更新时间:2023-11-30 00:52:16 24 4
gpt4 key购买 nike

我有一个扩展了 BaseActivity 的 Activity,其中在 BaseActivity 中它还创建了一个线程,以便在不同线程中的所有 Activity 中播放 MediaPlayer,这是我的代码:

在我的 MainActivity 中:

public class MainActivity extends BasedActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
beginBGMusic();
}
}

在我的 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();
}
}

但是,MediaPlayer.create() 需要一个上下文,我不明白如果它在线程中并且也在不同的类中,我应该如何设置上下文。

有谁知道如何用我的方法解决问题?

谢谢!

最佳答案

/**
* Class MediaManager created on 11/07/16 - 4:01 PM.
* All copyrights reserved to the Zoomvy.
* Class behaviour is to initialize and play a media file on notification
*/
public class MediaManager {
/**
* SingleTon instance
*/
private static MediaManager sInstance;

private Context mContext;

private MediaManager(Context context) {
mContext = context.getApplicationContext();
}

public static MediaManager getInstance(Context context) {
if (null == sInstance) {
synchronized (MediaManager.class) {
sInstance = new MediaManager(context);
}
}
return sInstance;
}
}

以上是媒体管理器的单例类。在这里您可以进一步定义媒体播放器,它将是您所有 Activity 的单一实例。

But still I recommend to use a service instead of a thread.

关于android - 在所有 Activity 中播放 MediaPlayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40809651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com