gpt4 book ai didi

android - 如何在 ListView 中显示SD卡中的mp3文件?

转载 作者:行者123 更新时间:2023-12-03 02:21:44 26 4
gpt4 key购买 nike

我创建一个应用程序来记录音频并将其存储在SD卡中。我做了这部分
成功。这是用于将音频文件插入SD卡的代码。

protected void addRecordingToMediaLibrary() {
ContentValues values = new ContentValues(4);
long current = System.currentTimeMillis();
values.put(MediaStore.Audio.Media.TITLE, "audio" + audiofile.getName());
values.put(MediaStore.Audio.Media.DATE_ADDED, (int) (current / 1000));
values.put(MediaStore.Audio.Media.MIME_TYPE, "audio/3gpp");
values.put(MediaStore.Audio.Media.DATA, audiofile.getAbsolutePath());
ContentResolver contentResolver = getContentResolver();

Uri base = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Uri newUri = contentResolver.insert(base, values);

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, newUri));
Toast.makeText(this, "Added File " + newUri, Toast.LENGTH_LONG).show();
}

但是现在我想在listView中显示此音频文件,但是我不知道该怎么做。
请给我任何引用或提示。

最佳答案

首先解压缩所有的mp3文件。

使用我开发的这种方法...获取SD卡的mp3文件

为了更详细,我还问了一个问题 Observing changes in android content observer for Audio.Media.EXTERNAL_CONTENT_URI

此代码对 mnt / sdcrad extSdCard 均适用

在这段代码中,我已经检索到

  • 文件名
  • 文件路径
  • 时间
  • 持续时间

  • 每个mp3文件。您可以检索的字段太多,请引用此 http://developer.android.com/reference/android/provider/MediaStore.Audio.AudioColumns.html
         private void getAllAudio() {
    Cursor mCursor = null;

    try {
    mCursor = context.getContentResolver().query(
    Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, "_id");

    System.out.println("Cursor count is " + mCursor.getCount());

    if (mCursor.getCount() != 0) {

    do {


    long date = mCursor.getLong(mCursor
    .getColumnIndexOrThrow(Audio.Media.DATE_ADDED));

    String Duration = mCursor.getString(mCursor
    .getColumnIndexOrThrow(Audio.Media.DURATION));
    String DISPLAY_NAME = mCursor.getString(mCursor
    .getColumnIndexOrThrow(Audio.Media.DISPLAY_NAME));
    String DATA = mCursor.getString(mCursor
    .getColumnIndexOrThrow(Audio.Media.DATA));
    double TIME_STAMP = mCursor.getInt(mCursor
    .getColumnIndexOrThrow(Audio.Media.DATE_ADDED));


    System.out.println("Name:" + DISPLAY_NAME);
    System.out.println("data " + DATA);
    System.out.println("time " + TIME_STAMP);
    System.out.println("time " + Duration);

    //Here you can create data base for recoring entries or may can create ArrayList of Class bean object having this fields for showing in ListView.


    } while (mCursor.moveToNext());

    }
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    if (mCursor != null) {
    mCursor.close();
    mCursor = null;
    }
    }

    }
    }

    关于android - 如何在 ListView 中显示SD卡中的mp3文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11757117/

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