语音MP3播放类

200 阅读1分钟
/**
 * 描述:
 * 作者:卜俊文
 * 创建:2016/8/19 10:09
 * 邮箱:344176791@qq.com
 */
public class AudioUtils
{

    private MediaPlayer mediaPlayer;

    private static AudioUtils audioUtils = new AudioUtils();

    public AudioUtils()
    {
        if (mediaPlayer == null)
        {
            mediaPlayer = new MediaPlayer();
        }
    }

    public static AudioUtils getInstance()
    {
        return audioUtils;
    }

    /**
     * @方法名:
     * @参数:
     * @返回值:
     * @描述: 播放音频
     * @作者: junwen
     * @创建日期 2016/8/19 10:24
     */
    public void speak(Context context, String name)
    {
        if (mediaPlayer == null)
        {
            mediaPlayer = new MediaPlayer();
        }
        if (!TextUtils.isEmpty(name))
        {
            mediaPlayer.reset();
            AssetManager assets = context.getAssets();
            if (assets == null)
            {
                return;
            }
            try
            {
                final AssetFileDescriptor fileDescriptor = assets.openFd(name);
                if (fileDescriptor == null)
                {
                    return;
                }
                mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(), fileDescriptor.getLength());
                mediaPlayer.prepare();
                mediaPlayer.start();
                mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
                {
                    @Override
                    public void onCompletion(MediaPlayer mediaPlayer)
                    {
                        close();
                    }
                });
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
    }

    public void close()
    {
        if (mediaPlayer != null)
        {
            mediaPlayer.stop();
        }
    }
}

播放MP3,MP3存放在assets文件夹下

AudioUtils.getInstance().speak(this,"hello.mp3");