使用SoundPool在Android中播放音频

电脑杂谈  发布时间:2020-05-11 04:03:34  来源:网络整理

android 音频播放_android 音频播放_android 播放网络音频

在手机上广播歌曲和观看视频无疑是最常见的休闲方式android 音频播放,并且Android还具有一整套用于播放音频和视频的API

使用SoundPool播放声音效果

SoundPool类可用于管理和播放应用程序中的音频资源. 这些音频资源可以放置在存储文件中或包含在程序中. 一般来说,SoundPool用于播放较短的声音效果,例如各种声音效果

android 音频播放_android 播放网络音频_android 音频播放

首先创建一个SoundPool对象

    private SoundPool sp;

然后

android 播放网络音频_android 音频播放_android 音频播放

创建一个Builder对象,使用SoundPool.Builder builder

设置最大音频数setMaxStreams()

预设音频类型setLegacyStreamType()

android 音频播放_android 音频播放_android 播放网络音频

设置音频类型,setAudioAttributes()

 if (Build.VERSION.SDK_INT >= 21) {
            SoundPool.Builder builder = new SoundPool.Builder();
            builder.setMaxStreams(2);
            AudioAttributes.Builder attrBuilder = new AudioAttributes.Builder();
            attrBuilder.setLegacyStreamType(AudioManager.STREAM_MUSIC);
            builder.setAudioAttributes(attrBuilder.build());
            sp = builder.build();
        }
        else {
            sp = new SoundPool(2, AudioManager.STREAM_SYSTEM, 0);
        }

由于SoundPool自Android 5.0中的API21起已过时,因此我们必须进行判断

android 播放网络音频_android 音频播放_android 音频播放

然后加载音频文件并播放

      int soundId1=sp.load(this,R.raw.winlog,1);
      int soundId2=sp.load(this,R.raw.lesson1,2);
        Button button1=(Button)findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sp.play(soundId1,1,1,1,0,1);
            }
        });
        Button button2=(Button)findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sp.play(soundId2,2,1,1,0,1);
            }
        });

SoundPool还具有其他方法android 音频播放,例如


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-205894-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...