0

我希望我的应用程序获取当前播放音频的 MediaMetaData(歌曲标题/艺术家/专辑)。我可以在我的计算机上的 updateMediaMetadata 下看到此信息打印到 logcat,因此我试图以某种方式提取该信息。

在此处输入图像描述

编辑: 所以当我可以进行/检测 MediaMetadata 调用时,logcat 绝对不是这样做的方法。我正在尝试创建一个新类,当我调用一个函数时打印出当前正在播放的 MediaMetadata 的标题,但我的代码没有编译,我想知道它是否与我如何设置我的类有关?根据我对文档的理解:

https://developer.android.com/reference/android/media/MediaMetadata

我正在尝试扩展该类以利用其功能,如下所示:

package com.example.crisisapp;

import android.media.AudioAttributes;
import android.media.MediaMetadata;
import android.media.session.PlaybackState;
import android.os.Bundle;
import android.media.session.MediaSession.QueueItem;
import android.util.Log;
import android.os.Bundle;

import java.util.List;

public class MediaController extends android.media.MediaMetadata{

MediaController(Bundle bundle) {
    super(bundle);
}

public void getMediaMetadata(){
    Log.i("myTag", "inside getMediaMetadata()");
    MediaMetadata mc = new MediaMetadata();
    //String title = mc.getString("METADATA_KEY_TITLE");
    //Log.i("myTag", "METADATA_KEY_TITLE = "+title);
}

}

我的 MainActivity 像这样调用这个函数:

public void startTrackingMusic(View view) {
    Log.i("myTag", "start of startTrackingMusic()");

    MediaController mc = new MediaController();

    final long NANOSEC_PER_SEC = 1000l*1000*1000;
    long startTime = System.nanoTime();
    while ((System.nanoTime()-startTime)< 2*60*NANOSEC_PER_SEC){
        Log.i("myTag", "loop");
        mc.getMediaMetadata();

    }
    Log.i("myTag", "end of startTrackingMusic()");
}

当我尝试构建我的项目时,它给出了错误,说我不能从最终的 MediaMetadata 继承等等:

在此处输入图像描述

我缺少什么需要正确声明 MediaMetadata 并检索标题字符串?

4

0 回答 0