我希望我的应用程序获取当前播放音频的 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 并检索标题字符串?