【发布时间】:2014-11-07 23:23:30
【问题描述】:
[第一个应用程序] 我正在创建一种警报应用程序,它允许用户从 sd 卡或应用程序提供的声音中选择警报声音。由于该应用程序本质上会播放警报,因此我希望音量为设备的“警报音量”。我能够为 SD 卡声音实现这一点。但是,我无法 setAudioStreamType 获取原始资源声音。
我正在使用以下代码:
MediaPlayer m_player = new MediaPlayer();
m_player.setAudioStreamType(AudioManager.STREAM_ALARM);
switch (bin_name) { //bin_name = various user selectable music files
default:
m_player = MediaPlayer.create(context, R.raw.blu);
break;
}
m_player.setLooping(true);
m_player.start();
我的blu.mp3 仅以媒体音量播放。在检查documentation 中的MediaPlayer.create(Context context, int resid) 后,我发现了这个:
请注意,由于在此方法中会自动调用 prepare(),因此您无法更改音频流类型(请参阅 setAudioStreamType(int))、音频会话 ID(请参阅 setAudioSessionId(int))或音频属性(请参阅 setAudioAttributes(AudioAttributes)新的 MediaPlayer。
我也尝试查找上述方法的代码示例,但没有一个显示如何将AudioStreamType 设置为AudioManager.STEAM_ALARM。我将接受以无限循环播放声音的替代方式的答案。如何做到这一点?
【问题讨论】:
标签: android android-mediaplayer android-audiomanager