如何在 Nativescript 中创建 MediaSession?

How can I create a MediaSession in Nativescript?

我正在尝试使用 Nativescript 创建一个 Android 应用程序。到目前为止,我做得很好,除了一件事(而且 - 考虑到这是一个用于收听播客的应用程序 - 可能是最重要的一个)。

为了在我的应用程序中重现 mp3 文件,我使用了一个非常有名的插件,名为 nativescript-audio。它工作得很好,除了当 phone 处于锁定屏幕时不显示任何控件。这是我想给用户的东西。

阅读一些 android 开发人员文档,我发现我可能需要一个 MediaSession,然后添加一些带有动作的图标并编写一些回调函数来操纵播放器.

问题是:在 Nativescript 中,我该怎么做?

this.session = new android.media.session.MediaSession(
    android.content.Context,
    'My Media Session'
)

这是我在我的播放器 TypeScript 中使用的片段 class。但不工作,因为我收到此错误:

Error: Cannot marshal JavaScript argument function () { [native code] } at index 0 to Java type.

有谁遇到过这个问题愿意帮助我吗?非常感谢!

您应该传递一个有效的上下文,您传递的是上下文 class 定义本身。

import { android as androidApp } from "tns-core-modules/application";

this.session = new android.media.session.MediaSession(
  androidApp.context,
  'My Media Session'
)