当前位置: 首页 > 知识库问答 >
问题:

在我的应用程序中播放声音,即使ringer处于静音模式

应向晨
2023-03-14

我有一个应用程序,我需要阻止铃声和通知声音/振动,并播放自定义的声音,而电话是在来电状态。

audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT)
MediaPlayer mp= MediaPlayer.create(context, R.raw.my_ringtone);
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setLooping(false);
mp.start();

它在某些设备上不起作用(其中之一是LG G2)。

我相信有一种方法可以解决这个问题,因为其他应用程序/游戏在铃声/通知处于振动模式时确实可以播放声音。

如有任何帮助,不胜感激。

提前感谢!

共有1个答案

丌官晔
2023-03-14

所以另一个解决方案是你可以在下面给出的片段中播放铃声

int volume = audioManager.getStreamVolume(AudioManager.STREAM_ALARM);
if(volume==0)
volume = audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, volume,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
ringtone = RingtoneManager.getRingtone(getApplicationContext(), Uri.parse(ringTonePath));
if(ringtone!=null){
    ringtone.setStreamType(AudioManager.STREAM_ALARM);
    ringtone.play();
    isRinging = true;
}

isring设置为标志,如果您想以编程方式停止播放,或者您可以检查铃声的byisplay()以停止播放。

 类似资料:
  • 我正在开发一个应用程序,根据特定的间隔播放一些声音。我让用户控制这些声音的音量。告诉现在它是好的,声音音量级别是作为用户选择之前。但这里的问题是,设备的音量水平也发生了变化。问题是:如何在不影响设备声级的情况下以我的音量水平播放我的声音? 更新:根据Biraj解决方案,要获得每个设备的最大允许卷,使用int streamMaxVolume而不是MAX_VOLUME变量。所以完整的答案是:

  • 问一下Xamarin.Forms便携里面Xamarin.Forms的音频怎么播放 正如我所知,有依赖服务,我看到了一些示例,只有iOS和Android,但没有Windows Phone 8.1/Windows 8.1和UWP。

  • 播放(播放音效/播放录音)

  • 问题内容: 在Python中播放声音文件(.wav)的最简单方法是什么?最简单的说,我指的是最独立的平台,并且需要最少的依赖。pygame当然是一个选择,但听起来似乎有些过分。 问题答案: Snack Sound Toolkit可以播放wav,au和mp3文件。

  • 问题内容: 我正在尝试播放声音,但无法正常工作。 编辑1: 仍然行不通。 编辑2 :此代码有效。我的设备处于静音模式。 问题答案: 对您的代码进行了修改: Swift 3和Swift 4.1:

  • 问题内容: 这是我用来在我的react应用程序中使用url(this.url)播放声音的代码。当我按下播放按钮时,它给我一个错误 我不确定为什么会这样,因为我没有看到任何未定义的状态。一个;; 状态已经声明。 我是新来的反应者,所以我可能会错过一些非常重要的东西。 请帮忙! 问题答案: 我稍微改进了Jaxx的版本,使其包含一个,以便在音频结束时重置按钮。 ES6类属性语法 挂钩版本(反应16.8+