oncreate方法中无法播放声音

来源:互联网 发布:预测算法有哪些 编辑:程序博客网 时间:2024/06/01 18:22

首先说一下Android播放音乐的两种方式

1.MediaPlayer

(1)try {
MediaPlayer player = new MediaPlayer( );
player.setDataSource("/raw/dog.mp3");
player.prepare( ); //如果MediaPlayer 是new出来的 需要手动调用prepare
player.start( );
} catch (IOException e) {
e.printStackTrace( );
}

(2) MediaPlayer player = MediaPlayer.create(this,R.raw.dog); 
   player.start( );

//如果MediaPlayer 是create出来的 内部已经调用了prepare  我们无需再调用


2.SoundPool

//1.创建声音池
final SoundPool pool = new SoundPool(3, 
AudioManager.STREAM_MUSIC,0);
// 2.把声音添加到声音池
final int load = pool.load(this,R.raw.dog,0);
//pool.play(load, 1.0f, 1.0f, 0, -1, 1.0f)  直接播放是无声音的 需要延时(具体原因还不清楚);

new Timer().schedule(new TimerTask() {
@Override
public void run() {
pool.play(load, 1.0f, 1.0f, 0, -1, 1.0f);
}
}, 1000); //1000表示延时1秒

1 0
原创粉丝点击