C
QMediaSessionManager 类
QMediaSessionManager 类提供了当前设备上所有活跃的 媒体控制器 的列表。[技术预览](https://whats-new-in-this-release.html#features-that-are-a-technical-preview)。[更多...](#details)
头文件 | #include <QMediaSessionManager> |
CMake | find_package(Qt6 REQUIRED COMPONENTS AndroidAutomotiveMedia) target_link_libraries(mytarget PRIVATE Qt6::AndroidAutomotiveMedia) |
qmake | QT += media |
自 | QtAndroidAutomotive 6.5 |
继承 | QObject |
公共函数
QList<QMediaSessionController *> | activeControllers() const |
信号
void | activeControllersChanged() |
静态公共成员
QMediaSessionManager * | instance() |
详细描述
QMediaSessionManager管理设备上的活跃 媒体控制器 列表。如果检测到系统中添加了新的控制器,或者活跃的控制器被从系统中删除,则会更新活跃控制器列表并发出信号通知变点。
要访问 Android 中的控制器,您需要具有 MEDIA_CONTENT_CONTROL 权限,或者用户需要为您的应用程序授予通知访问权限。对于通知访问,需要在 AndroidManifest.xml 文件中添加 QtMediaNotificationListener
类,如下所示
<service android:name="org.qtproject.qt.android.mediasession.QtMediaNotificationListener" android:enabled="true" android:exported="true" android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"> <intent-filter> <action android:name="android.service.notification.NotificationListenerService" /> </intent-filter> </service>
请参阅Qt Android Manifest File Configuration,Android Manifest <service> 元素和 Android NotificationListenerService 文档以获取更多信息。
媒体会话已知问题、错误和缺陷
影响此 API 的所有已知问题、错误和缺陷在此列出并描述。这些问题的状态将在每次发布时更新。
在权限授予之前调用 onListenerConnected
当前,媒体会话 API 依赖于 onListenerConnected 方法来确定用户是否已授予通知访问权限。但是,有时 Android 甚至在通知访问权限授予之前就会调用 onListenerConnected 方法。这是一个 open bug 在 Android 上,并且已在 此处 报告。
一种解决方法是,在卸载应用程序之前取消安装应用程序的权限。
另请参阅:QMediaSessionController。
成员函数文档
QList<QMediaSessionController *> QMediaSessionManager::activeControllers() const
返回设备上活动的控制器列表。
当应用程序播放媒体时,它可以创建一个媒体会话,以便其他应用程序可以选择控制正在播放的媒体。这些控制器代表了设备上的活动会话。
注意:控制器属于QMediaSessionManager。当发出QMediaSessionManager::activeControllersChanged() 信号时,控制器将被删除,并且任何引用都无效。
[信号]
void QMediaSessionManager::activeControllersChanged()
当媒体控制器列表更新时,会发出此信号。例如,当添加新控制器或删除旧控制器时。
[静态]
QMediaSessionManager *QMediaSessionManager::instance()
返回单例实例的指针。
在特定的Qt许可下可用。
了解更多信息。