首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android在任意时间内播放音乐

Android在任意时间内播放音乐
EN

Stack Overflow用户
提问于 2012-05-02 19:41:59
回答 2查看 314关注 0票数 0

现在我可以在android中播放音乐了。但是我想在2到8秒的随机时间量内播放这个声音,我可以随机播放它吗,例如,第一次播放2秒,下一次播放7秒,依此类推?有人能帮我吗?

EN

回答 2

Stack Overflow用户

发布于 2012-05-02 20:08:57

浏览以下链接:

Random number Generation

Media Player

Timer

你将会有一个想法。

票数 3
EN

Stack Overflow用户

发布于 2012-05-02 20:24:14

android中的声音是这样播放的:

代码语言:javascript
复制
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
int mSoundID = mSoundPool.load(this, R.raw.sound1, 1);
            float lActualVolume = (float) audioManager
                    .getStreamVolume(AudioManager.STREAM_MUSIC);
            float lMaxVolume = (float) audioManager
                    .getStreamMaxVolume(AudioManager.STREAM_MUSIC);
            float lVolume = lActualVolume / lMaxVolume;
            // Is the sound loaded already?
            if (mSoundIsLoaded) {
                mSoundPool.play(mSoundID, lVolume, lVolume, 1, 0, 1f);

我认为你已经得到了很多帮助来弄清楚随机数部分。您必须将声音文件放在您的assets/raw目录中。

编辑:我忘记提到mSoundIsLoaded参数是从哪里来的。我设置它时,我的声音已经加载。我在我的onCreate方法中做到了这一点。加载声音时,我设置了一个名为mSoundIsLoaded的布尔值字段。我这样做是为了防止NullPointerExceptions在播放声音时,声音的加载如下所示:

代码语言:javascript
复制
mSoundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
            mSoundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
                @Override
                public void onLoadComplete(SoundPool soundPool, int sampleId,
                        int status) {
                    mSoundIsLoaded = true;
                }
            });
            mSoundID = mSoundPool.load(this, R.raw.sound1, 1);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10413017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档