Android利用SoundPool实现音乐池

本文实例为大家分享了Android利用SoundPool实现音乐池的具体代码,供大家参考,具体内容如下

运行效果图如下:

布局文件(activity_sound_pool.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_sound_pool"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.example.g150825_android26.SoundPoolActivity">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="音效鸡"
        android:onClick="playKFC"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="音效TWO"
        android:onClick="playTWO"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="音效Three"
        android:onClick="playThree"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="音效Four"
        android:onClick="playFour"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="音效狗"
        android:onClick="playDog"
        />

</LinearLayout>

Java代码

package com.example.g150825_android26;

import android.app.AlarmManager;
import android.media.AudioManager;
import android.media.SoundPool;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class SoundPoolActivity extends AppCompatActivity {

    private SoundPool soundPool;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sound_pool);
        soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC,0);

        soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
            @Override
            public void onLoadComplete(SoundPool soundPool, int i, int i1) {
                soundPool.play(i,1,1,1,-1,1);
            }
        });
    }
    public void playKFC(View view){
        soundPool.load(this,R.raw.rooster,1);
    }
    public void playTWO(View view){
        soundPool.load(this,R.raw.chimp,1);

    }
    public void playThree(View view){
        soundPool.load(this,R.raw.crickets,1);
    }
    public void playFour(View view){
        soundPool.load(this,R.raw.roar,1);
    }
    public void playDog(View view){
        soundPool.load(this,R.raw.dogbark,1);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (soundPool!=null){
            soundPool.release();
            soundPool=null;
        }
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android编程实现使用SoundPool播放音乐的方法

    本文实例讲述了Android编程实现使用SoundPool播放音乐的方法.分享给大家供大家参考,具体如下: 如果应用程序要播放密集.短促的音效,这时还用MediaPlayer就显得不合适了.MediaPlayer存在如下缺点: 1.资源占用率较高,延迟时间较长 2.不支持多个音频同时播放 此时我们可以用SoundPool来播放音效,SoundPool使用音效池的概念来管理多个短促的音效,例如它可以开始就加载20个音效,以后在程序中按音效的ID进行播放 SoundPool主要用于播放一些较短的声音

  • android使用SoundPool播放音效的方法

    在Android开发中我们经常使用MediaPlayer来播放音频文件,但是MediaPlayer存在一些不足,例如:资源占用量较高.延迟时间较长.不支持多个音频同时播放等.这些缺点决定了MediaPlayer在某些场合的使用情况不会很理想,例如在对时间精准度要求相对较高的游戏开发中. 在游戏开发中我们经常需要播放一些游戏音效(比如:子弹爆炸,物体撞击等),这些音效的共同特点是短促.密集.延迟程度小.在这样的场景下,我们可以使用SoundPool代替MediaPlayer来播放这些音效. Sou

  • Android使用SoundPool实现播放音效

    如果在程序应用中(比如:游戏的音效等)需要播放密集.短促的音效,这时就使用SoundPool来播放音效,SoundPool使用音效池的概念来管理多个短促的音效,例如它可以开始就10个音效,以后在程序中按音效的ID进行播放. SoundPool主要用于播放一些较短的声音片段,与MediaPlayer相比,SoundPool的优势在 于CPU资源占用量低和反应延迟小.另外,SoundPool还支持自行设置声音的品质.音量.播放比率等参数. 一般使用SoundPool播放声音的步骤如下: Step1:

  • Android多媒体应用使用SoundPool播放音频

    由于MediaPlayer占用资源较多,且不支持同时播放多个音频,所以Android还提供了另一个播放音频的类-----SoundPool.SoundPool即音频池,可以同时播放多个短小的音频,而且占用的资源较少.SoundPool适合在应用程序中播放按键音或消息提示音等,在游戏中播放密集而短暂的声音,如多个飞机爆炸的声音等.使用SoundPool播放音频,首先需要创建SoundPool对象,然后加载所需要播放的音频,最后调用play()方法播放音频,下面进行详细介绍 1.创建SoundPoo

  • Android使用SoundPool播放短音效

    前言 对于Android播放一些简短音效,例如提示音,或者铃声,相对于使用MediaPlayer,SoundPool可以节省更多资源,并且可以同时播放多个音效,而且可以针对不同音效设置不同播放品质 实现 SoundPool的具体作用,就不再阐述,直接贴代码 private SoundPool.Builder spBuilder; private SoundPool soundPool; private Integer[] fmSound = FmManager.getRawAudios(); i

  • Android使用SoundPool实现播放音频

    最近做一个播放音频的小功能,使用毛坯界面简单记录下(点击上边的ImageButton播放,下边的ImageView请无视) activity_picture.xml页面: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="ht

  • Android SoundPool实现简短小音效

    一.SoundPool介绍 我们之前有用过MediaPlayer进行播放音频文件,但是当我们的应用程序需要经常的播放密集.短促的音效时,调用MediaPlayer则会占用系统的大量资源,且延时时间较长,不支持多个音频同时播放.这种简单的音乐的播放就运用到了我们的SoundPool,它使用音效池的概念来管理短促的音效,例如它可以开始就加载20 个音效,通过他们的id进行管理与播放.SoundPool的优势在于占用的CPU资源少,反应延迟降低.另外它还支持自行设置声音的品质,音量,播放比率. 二.使

  • Android中SoundPool的使用步骤实例

    大家知道MediaPlayer占用的资源比较多,且不可以同时支持播放多个音频,所以我们有一种叫做SoundPool,比如我们常见的按键音或者是手机提示音,还比如我们在游戏的开发中会有大量的音效效果等,下边介绍一下她的用法: 步骤如下: 1.创建SoundPool对象 源码如下 /** *SoundPool源码中的构造方法方法体 * @param maxStreams 最多可以容纳多少个音频 * @param streamType 指定的声音类型,通过AudioManager类提供的常量进行指定

  • Android使用SoundPool播放音效实例

    使用场景 SoundPool一般用来 播放密集,急促而又短暂的音效,比如特技音效:Duang~,游戏用得较多,你也可以为你的 APP添加上这个音效,比如酷狗音乐进去的时候播放"哈喽,酷狗" 是不是提起了对于SoundPool的兴趣了呢 ok,废话不多说 详细的参数解释请看注释 public class SoundPlayer extends AppCompatActivity { private SoundPool mSoundPool; @Override protected voi

  • Android使用SoundPool播放音效

    本文实例为大家分享了Android使用SoundPool播放音效的具体代码,供大家参考,具体内容如下 SoundPool(int maxStreams, int streamType, int srcQuality) 参数依次是: ①指定支持多少个声音,SoundPool对象中允许同时存在的最大流的数量. ②指定声音类型,流类型可以分为STREAM_VOICE_CALL(通话), STREAM_SYSTEM(系统), STREAM_RING(铃声),STREAM_MUSIC(媒体音量) 和STR

随机推荐