android - SoundPool 播放铃声通知的方法是什么?

标签 android

用户使用 RingtonePreference 选择铃声,我可以使用以下方法提取 Uri:

String pathString = mPreferences.getString(sKeySoundRingtone, null);
Uri pathUri;

if (pathString == null)
    pathUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);;
else
    pathUri = Uri.parse(pathString);

现在我想使用 SoundPool类,因为我只使用通知(持续时间通常在 5 秒以下)并且我喜欢它提供的循环和速率选项。

尽我所能但失败了,因为类可以用路径构造,而 pathUri.getPath() 不起作用。

有没有办法让它工作?

最佳答案

当您的通知被广播时,您将收到任何接收者的电话。届时您只需调用该函数即可播放音源池中的声音。

见下文:

public void Sound(){
    AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
    float volume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
    android.util.Log.v("SOUND","["+volume+"]["+spool.play(soundID, volume, volume, 1, 0, 1f)+"]");
};

关于android - SoundPool 播放铃声通知的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13251911/

相关文章:

android - 如何以编程方式在 Android SD 卡中下载 Youtube 视频

java - 为 unity 3D 创建原生 Flashlight Android Java 插件

java - 存储在共享首选项中的值

android - Facebook SDK 4+ 注销无法正常工作

android - 带有部分标题android的 ListView

Android 视觉文本 OCR 单图像 api

android - 将gradle问题从2.3.3升级到3.5.1

java - Google Maps Android api v2 折线长度

android - 来自 Android 的 AWS Identity TVM 注册

android - file.mkdirs() 不工作