我想将几个MP3加载到声音池中,但我只会在活动3上使用这些MP3,是否可以在活动1中加载MP3?
或者这仅限于加载它使用它的Activity吗?
我在文档中找不到答案。
答案 0 :(得分:2)
您可以随时加载它们并在任何地方使用它们。重用SoundPool
对象的最好方法是扩展Application
类并在那里声明一个私有变量SoundPool
。类似的东西:
class MyApp extends Application {
private static MyApp singleton;
private static SoundPool mSoundPool;
public onCreate() {
super.onCreate();
singleton = this;
mSoundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0); Just an example
}
public static MyApp getInstance() {
return singleton;
}
public SoundPool getSoundPool() {
return mSoundPool;
}
}
现在,您可以运行任何代码:
MyApp.getInstance().getSoundPool();
您将可以访问全局SoundPool对象。
PS:如果扩展应用程序类,请不要忘记更新Manifest。