【发布时间】:2015-03-13 04:49:26
【问题描述】:
我正在尝试播放警报声,但我收到了这个错误并且我听不到声音。它不会导致应用程序出现任何问题或崩溃,但没有声音。
03-13 00:35:01.138: D/MediaPlayer(2580): Couldn't open file on client side, trying server side
03-13 00:35:01.138: E/MediaPlayer(2580): Unable to create media player
03-13 00:35:01.138: I/alarmReceiver(2580): No audio file founded!
根据我的调试,这个错误发生在这行代码运行之前:
mMediaPlayer.setDataSource(context, alert);
这不仅发生在模拟器中,也发生在真实设备中;我什么都听不见。
这是我的代码:
playSound(this, getAlarmUri());
private void playSound(Context context, Uri alert) {
mMediaPlayer = new MediaPlayer();
try {
mMediaPlayer.reset();
**mMediaPlayer.setDataSource(context, alert);**
final AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
Log.i("getStreamVolume", am.getStreamVolume(AudioManager.STREAM_ALARM)+"");
if (am.getStreamVolume(AudioManager.STREAM_ALARM) != 0) {
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
mMediaPlayer.prepare();
mMediaPlayer.start();
}
} catch (Exception e) {
// TODO: handle exception
Log.i("alarmReceiver", "No audio file founded!");
}
}
private Uri getAlarmUri()
{
Uri alert=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
if(alert==null)
{
alert= RingtoneManager.getDefaultUri((RingtoneManager.TYPE_NOTIFICATION));
if(alert==null)
{
alert=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
}
}
Log.i("alert", alert.toString());
return alert;
}
【问题讨论】:
标签: java android stream android-mediaplayer