音乐信息获取
import android.media.session.MediaController;
import android.media.session.MediaSessionManager;
import android.media.session.PlaybackState;
import android.media.MediaMetadata;
import java.util.List; // 确保导入List

// 获取MediaSessionManager实例
MediaSessionManager mediaSessionManager = (MediaSessionManager) context.getSystemService(Context.MEDIA_SESSION_SERVICE);

// 获取所有活跃的MediaController
List mediaControllers = mediaSessionManager.getActiveSessions(null); // 避免使用泛型

// 初始化输出结果
StringBuilder output = new StringBuilder();

// 遍历所有MediaController,找到正在播放音乐的控制器
for (Object controller : mediaControllers) {
    if (controller instanceof MediaController) {
        MediaController mediaController = (MediaController) controller;
        PlaybackState playbackState = mediaController.getPlaybackState();
        MediaMetadata mediaMetadata = mediaController.getMetadata();

        // 检查是否正在播放音乐
        if (playbackState != null && mediaMetadata != null) {
            // 获取音乐包名
            String packageName = mediaController.getPackageName();

            // 获取专辑名
            String albumName = mediaMetadata.getString(MediaMetadata.METADATA_KEY_ALBUM);

            // 获取歌曲名
            String songName = mediaMetadata.getString(MediaMetadata.METADATA_KEY_TITLE);

            // 获取歌手名
            String artistName = mediaMetadata.getString(MediaMetadata.METADATA_KEY_ARTIST);

            // 获取音乐总时长
            long totalDuration = mediaMetadata.getLong(MediaMetadata.METADATA_KEY_DURATION);

            // 获取当前播放进度
            long currentPosition = playbackState.getPosition();

            // 获取播放状态
            String playbackStatus;
            int state = playbackState.getState();
            if (state == PlaybackState.STATE_PLAYING) {
                playbackStatus = "正在播放";
            } else if (state == PlaybackState.STATE_PAUSED) {
                playbackStatus = "已暂停";
            } else if (state == PlaybackState.STATE_STOPPED) {
                playbackStatus = "已停止";
            } else {
                playbackStatus = "未知状态";
            }

            // 构建当前应用的输出结果
            output.append("音乐包名: ").append(packageName).append("\n");
            output.append("专辑名: ").append(albumName != null ? albumName : "未知").append("\n");
            output.append("歌曲名: ").append(songName != null ? songName : "未知").append("\n");
            output.append("歌手名: ").append(artistName != null ? artistName : "未知").append("\n");
            output.append("总时长: ").append(totalDuration).append(" 毫秒\n");
            output.append("播放进度: ").append(currentPosition).append(" 毫秒\n");
            output.append("播放状态: ").append(playbackStatus).append("\n\n");
        }
    }
}

// 如果没有找到正在播放的音乐,返回默认提示
if (output.length() == 0) {
    output.append("没有找到正在播放的音乐。");
}

// 返回最终结果
return output.toString();
 
 
Back to Top