gpt4 book ai didi

android - android添加功能以在应用程序中选择自定义声音效果

转载 作者:行者123 更新时间:2023-12-02 23:59:38 25 4
gpt4 key购买 nike

我有一个应用程序,它会在应用程序的生命周期中的某些时候播放某些声音。我想允许用户自定义这些声音(当前它们是res / raw目录中的mp3文件)。我正在查看RingtonePreference,但尚不清楚如何向显示的值添加新声音,然后在应用程序中使用它们。如果有人能指出正确的方向,我将不胜感激。

谢谢!

编辑:

一种方法似乎是将文件添加到媒体存储中。类似于下面显示的代码。这似乎有点矫kill过正,因为现在在Android list 文件中,您必须使用权限“android.permission.WRITE_SETTINGS”。理想情况下,我只想将mp3资源作为选项添加,而不必将其写入媒体存储中。

        ContentValues content = new ContentValues();
InputStream raw = getResources()
.openRawResource(R.raw.file_name);

File f = new File("android.resource://" + getPackageName() + "/"
+ R.raw.clock_ticking);
content.put(MediaStore.MediaColumns.DATA, f.getAbsolutePath());
content.put(MediaStore.MediaColumns.TITLE, "TITLE");
content.put(MediaStore.MediaColumns.SIZE, 215454);
content.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
content.put(MediaStore.Audio.Media.ARTIST, "artist");
content.put(MediaStore.Audio.Media.DURATION, 230);
content.put(MediaStore.Audio.Media.IS_RINGTONE, false);
content.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
content.put(MediaStore.Audio.Media.IS_ALARM, false);
content.put(MediaStore.Audio.Media.IS_MUSIC, false);

Uri uri = MediaStore.Audio.Media.getContentUriForPath(f
.getAbsolutePath());
Uri newUri = getContentResolver().insert(uri, content);

编辑2:
另一种方法似乎是使用列表首选项。尽管列表首选项会起作用-您必须在选择更改时手动“播放”声音。让我看看是否可行,我会报告。

最佳答案

创建某种文件浏览器(可以使用与常规Java相同的File class来创建文件浏览器),以允许用户选择文件,然后使用MediaPlayer播放它们。

编辑:

如果要简化操作,请让用户将它们放在SD卡的指定目录中,例如yourapp/sounds,然后可以使用ListView使用以下内容列出该目录中的所有文件:

File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/yourapp/sounds");
File[] sounds = f.listFiles();
for (File sound : sounds) {
// Filter each one to see if it is a valid sound file
// and then add them to a ListView where the user can choose them
}

关于android - android添加功能以在应用程序中选择自定义声音效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9335473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com