播放MediaStore.Audio.Media条目
创始人
2024-12-23 08:30:37
0

要播放MediaStore.Audio.Media条目,可以使用MediaPlayer类来实现。下面是一个示例代码:

import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.net.Uri;
import android.provider.MediaStore;
import android.util.Log;

public class MediaPlayerHelper {

    private static final String TAG = "MediaPlayerHelper";
    private Context mContext;
    private MediaPlayer mMediaPlayer;

    public MediaPlayerHelper(Context context) {
        mContext = context;
        mMediaPlayer = new MediaPlayer();
    }

    public void playAudioFromMediaStore(Uri mediaUri) {
        try {
            // 设置数据源
            mMediaPlayer.setDataSource(mContext, mediaUri);
            // 准备和开始播放音频
            mMediaPlayer.prepare();
            mMediaPlayer.start();
        } catch (Exception e) {
            Log.e(TAG, "playAudioFromMediaStore: " + e.getMessage());
        }
    }

    public void stopAudio() {
        if (mMediaPlayer.isPlaying()) {
            mMediaPlayer.stop();
        }
    }

    public void releaseMediaPlayer() {
        mMediaPlayer.release();
        mMediaPlayer = null;
    }

    public Uri getMediaUri(String audioTitle) {
        ContentResolver contentResolver = mContext.getContentResolver();
        Uri mediaUri = null;
        String[] projection = {MediaStore.Audio.Media._ID};
        String selection = MediaStore.Audio.Media.TITLE + "=?";
        String[] selectionArgs = {audioTitle};
        Cursor cursor = contentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection, selectionArgs, null);
        if (cursor != null && cursor.moveToFirst()) {
            int columnIndex = cursor.getColumnIndex(MediaStore.Audio.Media._ID);
            long mediaId = cursor.getLong(columnIndex);
            mediaUri = Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, String.valueOf(mediaId));
            cursor.close();
        }
        return mediaUri;
    }
}

使用方法:

// 创建MediaPlayerHelper实例
MediaPlayerHelper mediaPlayerHelper = new MediaPlayerHelper(context);
// 获取音频的Uri
Uri mediaUri = mediaPlayerHelper.getMediaUri("audio_title");
// 播放音频
mediaPlayerHelper.playAudioFromMediaStore(mediaUri);
// 停止音频播放
mediaPlayerHelper.stopAudio();
// 释放MediaPlayer资源
mediaPlayerHelper.releaseMediaPlayer();

注意:需要在AndroidManifest.xml文件中添加以下权限:


这是一个简单的示例,你可以根据自己的需求进行修改和扩展。

相关内容

热门资讯

3分钟辅助器app!德普之星透... 3分钟辅助器app!德普之星透视辅助软件下载,德普之星私人局透视,详细教程(有挂插件)运德普之星透视...
8分钟德州!werplan有挂... 8分钟德州!werplan有挂吗(透视脚本)详细辅助脚本(好像脚本)亲,关键说明,赛季回归,软件透明...
八分钟私人局辅助免费!德普之星... 八分钟私人局辅助免费!德普之星私人局透视(透视辅助软件)详细辅助脚本(本来脚本)1、进入游戏-大厅左...
4分钟激活码!sohoo po... 4分钟激活码!sohoo poker辅助,pokemmo脚本辅助下载,详细教程(有挂秘籍)1、完成p...
十分钟激活码!德普之星透视软件... 十分钟激活码!德普之星透视软件免费入口官网(透视辅助)详细辅助挂(确实挂)1、德普之星透视软件免费入...
8分钟作弊辅助!拱趴大菠萝万能... 8分钟作弊辅助!拱趴大菠萝万能辅助器,智星菠萝透视,详细教程(有挂教程)8分钟作弊辅助!拱趴大菠萝万...
四分钟免费透视!德普之星私人局... 四分钟免费透视!德普之星私人局辅助器,德普之星辅助器,详细教程(有挂规律)1、德普之星私人局辅助器a...
6分钟作弊挂!拱趴大菠萝有什么... 您好,红龙poker作弊指令这款游戏可以开挂的,确实是有挂的,需要了解加微【757446909】很多...
一分钟透视挂!德普之星辅助器(... 一分钟透视挂!德普之星辅助器(透视辅助软件)详细辅助俱乐部(原来俱乐部)一、德普之星辅助器AI软件牌...
2分钟破解辅助!epoker免... 2分钟破解辅助!epoker免费透视脚本(透视脚本免费)详细辅助方法(好像方法)1、首先打开epok...