安卓使用SoundPool播放较短的声音MP3(短信铃声)

news/2024/11/29 21:43:42/


效果


代码

package com.javen.devicemange.CrazyOne.media;

import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

import com.javen.devicemange.R;

import java.util.HashMap;

/**
 * Created by Administrator on 2017/2/24 0024.
 * 使用SoundPool播放较短的声音MP3(短信铃声)
 * SoundPool使用音效池的概念来管理多个短暂声音,支持多个声音同时播放
 */

public class SoundPoolTest extends AppCompatActivity implements View.OnClickListener {private Button one;
    private Button two;
    HashMap<Integer, Integer> soundMap;
    private SoundPool soundPool;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);
        setContentView(R.layout.soundpooltest);
        initView();
        soundMap = new HashMap<>();
        //设置最多可以容纳10个音频流,音频的品质5
        soundPool = new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
        //load方法加载指定音频文件,并返回所加载的音频id
        //使用HashMap来管理这些音频流
        int oneId = soundPool.load(this, R.raw.one_music, 1);
        int twoId = soundPool.load(this, R.raw.two, 1);
        soundMap.put(1, oneId);
        soundMap.put(2, twoId);
    }private void initView() {one = (Button) findViewById(R.id.one);
        two = (Button) findViewById(R.id.two);

        one.setOnClickListener(this);
        two.setOnClickListener(this);
    }@Override
    public void onClick(View v) {switch (v.getId()) {case R.id.one://播放one_music音乐
                soundPool.play(soundMap.get(1), 1, 1, 0, 0, 1);
                break;
            case R.id.two://播放two音乐
                soundPool.play(soundMap.get(2), 1, 1, 0, 0, 1);
                break;
        }}
}

raw目录


布局xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">

    <Button
        android:id="@+id/one"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="播放音乐one"/>
    <Button
        android:id="@+id/two"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="播放音乐two"/>
</LinearLayout>

。。。


http://www.ppmy.cn/news/753521.html

相关文章

Android中铃声的使用

我之前也写过利用MediaPlayer播放音频&#xff0c;如果我们在应用中播放音乐&#xff0c;自然是不成问题。但是&#xff0c;如果我们是要播放一个简短的音效&#xff0c;那就有点不合适了。所以这里我们讲解一些Android中铃声的播放。 1.MediaPlayer的不足 MediaPlayer的初始…

Android 获取系统声音的媒体,铃声,闹钟,通话 以及实现震动、铃声提醒

AudioManager mAudioManager (AudioManager) getSystemService(Context.AUDIO_SERVICE); //1.通话音量 int max mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL ); int current mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL ); …

实现铃声声音渐强或减弱

最近在修改Android原生闹钟,为了增优化用户体验,在一个功能上进行了稍微的改进,原声的时钟设置铃音后,闹钟时间到,铃声的音量开始就是用户设置的音量。这样存在一个不是很友好的交互问题,例如用户设置的起床闹钟,用户正在睡梦中,一个很大的铃声响起,很可能吓着用户,对…

Android音量调节的实现(RingtoneManager和RingerVolumePreference)

Android音量调节的实现&#xff0c;分两种情况说明&#xff0c;一种是在settings的音量设置界面&#xff0c;按下侧键进行调节&#xff1b;另一种是在非settings界面&#xff0c;按下侧键进行音量调节。这两种调节方式的实现不一样&#xff0c;分别操作的是两个不同的音量SeekB…

Linux 内核源代码情景分析(四)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核 Linux 设备驱动程序 Linux设备驱动开发详解 深入理解Linux虚拟内存管理 Linux 内核源代码情景分析&#xff08;一&#xff09; Linux 内核源代码情景分析&#xff08;二&#xff09; Linux 内核源代码情景分析&#xff…

Android开发音效增强中铃声播放Ringtone及声音池调度SoundPool的讲解及实战(超详细 附源码)

需要源码请点赞关注收藏后评论区留下QQ~~~ 一、铃声播放 虽然媒体播放器MediaPlayer既可用来播放视频&#xff0c;也可以用来播放音频&#xff0c;但是在具体的使用场合&#xff0c;MediaPlayer存在某些播音方面的不足之处 包括以下几点 1&#xff1a;初始化比较消耗资源 尤其…

2021 红米6A MIUI11稳定版刷开发版 方法

1.下载红米 6A (cactus) 开发版(公测)刷机包 MIUI10 9.9.3 2.开发者中解锁BL 3.将开发版(公测)刷机包放到手机中 4.直接选择刷机包进行更新 一定要先解锁BL再刷&#xff0c;否则会验证不通过。

小米6android0root,小米 红米6 pro(安卓9.0)获取Root权限服务含精简系统方案

安卓手机一旦获取Root权限就好像拥有了全世界 独家系统精简方案&#xff0c;优化系统流畅度&#xff0c;还你如初的感受。 刷前须知&#xff1a; 使用本服务前&#xff0c;请保证手机未进行刷机或root权限 使用本服务不会清除手机数据&#xff0c;但建议备份数据后使用 请保证刷…