【问题标题】:how to use mediaSession for android api >=19如何将 mediaSession 用于 android api >=19
【发布时间】:2020-09-14 04:21:58
【问题描述】:

我正在尝试将MediaSession 合并到我的Service 中,但是,使用android.media.MediaSession 不起作用,因为调用mediaSession.release() 给我一个错误,说调用仅在api level 21 中可用,而我' m 针对 api 级别 19。

我已经搜索过了,它似乎在 androidx.media 中也没有。 androidx 用户的MediaSessionMediaSessionCompat 位于哪里?

【问题讨论】:

标签: java android android-4.4-kitkat mediasession


【解决方案1】:

根据Using a media session guide,正确的类仍然是android.support.v4.media.session.MediaSessionCompat(您会注意到,该类仍然保留在“AndroidX”文档集下,并且仍然是androidx.media 工件的一部分)。

该类保留在旧包中只是因为嵌套类 MediaSessionCompat.TokenParcelable 并且是公共 API 的一部分,因此无法命名其包,同时仍与仍然针对旧支持库类构建的应用程序兼容.

【讨论】:

  • 你的意思是android.support.v4/v7...androidx.... 不是互斥的库吗?
  • 您提供的此链接:developer.android.com/reference/android/support/v4/media/… 似乎没有像您提到的那样保留在androidx 部分中
  • 并且媒体支持库说 media-compat 已被弃用; developer.android.com/topic/libraries/support-library/… 并推荐使用androidx,并说androidx有新版本,但没有说在哪里
  • 在页面左侧导航的“AndroidX”部分非常清楚。就像我说的,这个类故意没有移动到 androidx 包,因为那样会破坏兼容性。绝对 100% 是 androidx.media 库的一部分。
  • androidx.media 是唯一一个仍然包含 android.support.v4 包中的类的 AndroidX 库组(因为它是唯一一个具有公共 Parcelable 实现的库,旨在发送到其他应用程序或从其他应用程序发送)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-20
相关资源
最近更新 更多