- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
根据 Uamp调用 onPlayFromMediaId
时的示例,其 mediaId
与已使用 iterator
存储的 queueitems
列表匹配,如下所示
public static int getMusicIndexOnQueue(Iterable<MediaSessionCompat.QueueItem> queue,
String mediaId) {
int index = 0;
for (MediaSessionCompat.QueueItem item : queue) {
if (mediaId.equals(item.getDescription().getMediaId())) {
return index;
}
index++;
}
return -1;
}
除非您的列表中有几千个项目,否则这很好用,它严重滞后,在这种情况下有什么办法可以让索引进入队列吗?
P.S.- 此代码来自 v1 分支,尽管基于 v2 kotlin 的分支具有相同的概念。
最佳答案
没有可用的 API 可以直接让您这样做。因此,您必须构建自己的数据结构。
我创建了一个以 MediaId 为键,以索引为值的 HashMap。这将帮助您更快地获取 QueueItem。那么问题就变成了,什么时候创建这个HashMap。当您从设备中获取媒体列表 (QueueItem) 时,我在回调中创建了它。这个想法是在后台创建这个 map 。
HashMap<String, Integer> mediaIndexMap = new HashMap<String, Integer>();
int index = 0;
for (MediaSessionCompat.QueueItem item : queue) {
mediaIndexMap.put(item.getDescription().getMediaId(), index++);
}
希望这个预处理 QueuItem 应该适用于恒定时间查找/获取。
关于android - MediaBrowserCompat 队列查找项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53494927/
我正在尝试将我的 Activity 连接到 MediaBrowserServiceCompat服务使用MediaBrowserCompat .这是我的 Activity : @Override pro
我关注了 Android official documentation on connecting MediaBrowserCompat但它拒绝连接,事实上 onConnected()、onConne
根据 Uamp调用 onPlayFromMediaId 时的示例,其 mediaId 与已使用 iterator 存储的 queueitems 列表匹配,如下所示 public static int
我正在为 Android 创建一个播放器应用程序并想要访问 MediaControllerCompat来自任何 UI 类。为此,我使用 MediaBrowserCompat类,我正在尝试将它连接到我的
我正在构建一个 android 媒体播放器,它将播放来自 URL 的 radio 流。一段代码如下: public class BaseActivity extends ActionBarCastAc
有一个旧源需要更新,但显示错误: Program type already present: android.support.v4.media.MediaBrowserCompat$CallbackH
我对 Android 开发完全陌生,似乎无法解决此错误:“错误:程序类型已存在:android.support.v4.media.MediaBrowserCompat$CustomActionCall
我正在迁移到 androidX 并被此异常阻止。 AGPBI: {"kind":"error","text":"Program type already present: android.suppor
更新 android 以预览 p 并添加 Material 设计库后收到此错误。重构为建议的 androidx 命名空间。 这是我的 app.gradle 文件 应用插件:'kotlin-androi
我是 flutter 的新手,我构建了一个非常小的应用程序来显示当前的纬度和经度,这需要我在 pubspec.yaml 中添加两个依赖项:- location 和 simple_permissions
我的应用构建成功但是当我尝试在手机上运行它或生成签名的 apk 时,它显示以下错误: Error:Note: Some input files use or override a deprecated
我是一名优秀的程序员,十分优秀!