我想获取 SD 卡中的音频文件

发布于 2024-10-30 19:52:49 字数 131 浏览 1 评论 0原文

在我的应用程序中,我想在接到来电时设置铃声...如何打开SDCARD并获取音频文件和列表它..如何获取所选音频文件URI..

In my app I want to set the ringtone when I get an incoming call... How to open the SDCARD and get audio files and list it.. How to get the URI for the selected audio file..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

恋你朝朝暮暮 2024-11-06 19:52:49

MediaScanner 为您查找音乐,填充 MediaStore 数据库。下面是一些查找音乐条目的代码:

final Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    final String[] cursor_cols = {
            MediaStore.Audio.Media._ID,
            MediaStore.Audio.Media.ARTIST,
            MediaStore.Audio.Media.ALBUM,
            MediaStore.Audio.Media.TITLE,
    };
    final String where = MediaStore.Audio.Media.IS_MUSIC + "=1";
    final Cursor cursor = getContentResolver().query(uri, cursor_cols, where, null, null);
    cursor.moveToNext();
    final String artist = cursor.getString(_cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
    final String album = cursor.getString(_cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
    final String track = cursor.getString(_cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
    doSomethingHere(artist, album, track);

“数据”字段包含一个可与 MediaPlayer 一起使用的句柄。第一次执行此媒体文件扫描和索引时,使用 AsyncTask 进行扫描,但稍后当收到意图时,使用服务进行扫描。

MediaScanner finds music for you, populating the MediaStore database. Here's some code to look up a music entry:

final Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    final String[] cursor_cols = {
            MediaStore.Audio.Media._ID,
            MediaStore.Audio.Media.ARTIST,
            MediaStore.Audio.Media.ALBUM,
            MediaStore.Audio.Media.TITLE,
    };
    final String where = MediaStore.Audio.Media.IS_MUSIC + "=1";
    final Cursor cursor = getContentResolver().query(uri, cursor_cols, where, null, null);
    cursor.moveToNext();
    final String artist = cursor.getString(_cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
    final String album = cursor.getString(_cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
    final String track = cursor.getString(_cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
    doSomethingHere(artist, album, track);

The "data" field contains a handle you can use with MediaPlayer. while doing this media files scanning and indexing for the first time, scan it using a AsyncTask, but later when a intent is received do it using a service.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文