我正在开发一个应用程序,其中当一个新活动开始时,它应该开始播放声音.
所以我用mediaplayer在oncreate中播放声音并且工作正常.但是,当我尝试使用soundpool时,通过在活动的oncreate中加载和播放它.
它不玩.
我选择soundpool,因为它比mediaplayer更好.
可能是什么问题?是不是在oncreate中使用soundpool工作?
解决方法:
你可以在任何地方玩,
我用一个简单的例子来证明
创建一个方法initializeSoundPool
private voID initializeSoundPool(){ mSoundPool = new SoundPool(2, AudioManager.STREAM_MUSIC, 0); mSoundPool.setonLoadCompleteListener(new onl oadCompleteListener() { public voID onl oadComplete(SoundPool soundPool, int sampleID, int status) { loaded = true; } }); soundID = mSoundPool.load(this, R.raw.glassbreak, 1); }
然后创建一个方法playfile
private voID playfile(){ AudioManager audioManager = (AudioManager) getSystemService(AUdio_SERVICE); float actualVolume = (float) audioManager .getStreamVolume(AudioManager.STREAM_MUSIC); float maxVolume = (float) audioManager .getStreamMaxVolume(AudioManager.STREAM_MUSIC); float volume = actualVolume / maxVolume; if (loaded) { mSoundPool.play(soundID, volume, volume, 1, 0, 1f); Log.e("Test", "Played sound"); }}
然后在onCreate中调用它们就像这样
private SoundPool mSoundPool; private int soundID; boolean loaded = false; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.spxml); initializeSoundPool(); playfile(); }
或者甚至更好地调用onCreate中的initializeSoundPool,然后在onResume中调用playfile.
总结以上是内存溢出为你收集整理的java – 可以在oncreate()中播放soundPool吗?全部内容,希望文章能够帮你解决java – 可以在oncreate()中播放soundPool吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)