最近用到mediaplayer,有客户反应,收到通知没有声音
我的代码如下:
mediaPlayer = MediaPlayer.create(context, R.raw.alarm); mediaPlayer.setVolume(1.0f, 1.0f); mediaPlayer.setLooping(false); mediaPlayer.start(); mediaPlayer.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { // 在播放完毕被回调 if (mediaPlayer != null ) { mediaPlayer.stop(); mediaPlayer.release(); mediaPlayer = null; } } });
研究发现调用create之后没调用prepare,不知道是不是没调prepare,而系统版本不同导致的这个原因,就查了下资料
发现他妈的并不是,create里已经调用了perpare,是他没有开声音 屮艸 芔芔芔芔芔芔芔,再次意识到把用户当傻瓜的重要性.
但是还是收获了很多:
理论请看这里:https://zhidao.baidu.com/question/1988917858383577787.html
要实际代码的请看这里:http://blog.csdn.net/u011558902/article/details/41013505
要看底层(C)调用的请看这里:http://blog.csdn.net/lihenair/article/details/41442839
要看生命周期及状态的请看这里:http://blog.csdn.net/songshizhuyuan/article/details/32947139