java - 如何更新媒体商店中的流派?
问题描述
我正在尝试更新音频文件的流派标签。
代码
final Uri genreUri = MediaStore.Audio.Genres.EXTERNAL_CONTENT_URI;
String currentGenreName = MediaStore.Audio.Genres.NAME;
ContentValues values2 = new ContentValues();
values2.put(currentGenreName, genre);
String whereGenre = MediaStore.Audio.Genres._ID + "=?";
String[] whereVal2 = {Long.toString(genreID)};
resolver.update(genreUri, values2, whereGenre, whereVal2);
- 流派:来自edittext的值(新流派名称)。
- GenreID : 来自所选音频文件的流派 ID。
我没有收到任何错误,但 MediaStore 流派表中的流派没有更新。
标题、艺术家、专辑和艺术等其他标签已更新,只有流派不起作用。
我也找不到有关在音频文件中更新流派名称的任何信息,我只能使用上面的标签来做到这一点。
编辑
我用来编辑标题、艺术家、专辑名称和年份标签的代码,这很好用,所以我想我必须对流派名称做同样的事情,因为我有流派 ID。
final Uri musicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
ContentResolver resolver = c.getContentResolver();
String currentTitle = MediaStore.Audio.Media.TITLE;
String currentArtist = MediaStore.Audio.Media.ARTIST;
String currentAlbumID = MediaStore.Audio.Media.ALBUM_ID;
String currentAlbum = MediaStore.Audio.Media.ALBUM;
String currentGenreID = MediaStore.Audio.Genres._ID;
String currentGenreName = MediaStore.Audio.Genres.NAME;
String currentAlbumData = MediaStore.Audio.Media.DATA;
String currentYear = MediaStore.Audio.Media.YEAR;
ContentValues values = new ContentValues();
values.put(currentTitle, title);
values.put(currentArtist, artist);
values.put(currentAlbum, album);
values.put(currentYear, year);
//Update song info.
String where = MediaStore.Audio.Media._ID + "=?";
String[] whereVal = {Long.toString(songID)};
resolver.update(musicUri, values, where, whereVal);
有什么不更新的原因吗?
解决方案
推荐阅读
- google-cloud-platform - 如何使用 webhook 从完整请求对话框流中读取参数?
- flutter - 使用颤振提供程序小部件时出现以下错误
- c++ - 继承类和 CUDA 的问题
- r - ggplot中具有多个变量的时间序列
- java - java vlcj播放扩展wav文件时卡顿
- c - 使用 XLib 创建一个不可调整大小的窗口
- java - 如何在android中自定义单选按钮
- reactjs - 如何解决 Jest 遇到的意外令牌
- ansible - Ansible:如何过滤 dict2items 并仅为匹配的值运行 playbook
- java - 测试扩展抽象类和接口的 Spring Service 类