• 播放音频


    本文旨在实践Android中播放声音的两种常见方法;

    项目地址:https://github.com/avnewu/sounddemo

    一.

    播放短暂的声音如爆炸声警告音等;

    使用SoundPool类,声音文件调入内存中,播放响应快,但是占用内存;

            AudioManager manager = (AudioManager) getSystemService(AUDIO_SERVICE);
            float maxvolume = manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
            float currentVolume = manager.getStreamVolume(AudioManager.STREAM_MUSIC);
            final float volume = currentVolume / maxvolume;
            sound1Btn.setOnClickListener(new View.OnClickListener()
            {
                public void onClick(View v)
                {
                    soundPool.play(soundid, volume, volume, 1, 0, 1);
                }
            });

    二.

    播放时间较长的背景音乐,文件存储在SD卡上;

    使用MediaPlayer类,比前者麻烦一点,遵循生命周期,

    1.实例化MediaPlayer;

    2.设置音频资源;

    3.为播放音频做准备;

    4.播放;

                    try
                    {
                        mediaPlayer.setDataSource("/sdcard/dl.mid");
                    } catch (Exception e)
                    {
                        e.printStackTrace();
                    }
                    try
                    {
                        mediaPlayer.prepare();
                    } catch (Exception e)
                    {
                        e.printStackTrace();
                    }
                    if (isPlaying)
                    {
                        mediaPlayer.pause();
                        sound2Btn.setText("Play a music on SDcard");
                        isPlaying = false;
                    } else
                    {
                        mediaPlayer.start();
                        mediaPlayer.setLooping(true);
                        sound2Btn.setText("Click again to pause ");
                        isPlaying = true;
                    }
    作者:小文字
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    MySql数据库水平扩展过程
    (转)MySQL数据库水平切分的实现原理解析
    SVN安装使用
    servlet基础
    数据库读写分离的性能分析
    java的可变长参数
    java消息服务
    static/final成员与多态
    商业软件与开源软件
    托管堆
  • 原文地址:https://www.cnblogs.com/avenwu/p/2667905.html
Copyright © 2020-2023  润新知