Как я могу создать MediaSession в Nativescript? - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь создать приложение для Android с Nativescript . Пока у меня все отлично, за исключением одной вещи (и, учитывая, что это приложение для прослушивания подкастов, возможно, самое важное).

Для воспроизведения mp3-файлов в моем приложении я использую довольно известный плагин с именем nativescript-audio . Он прекрасно работает, за исключением того, что не показывает никакого контроля, когда телефон находится на экране блокировки. Что я хочу дать пользователю.

Читая некоторую документацию для разработчиков Android, я обнаружил, что мне может понадобиться MediaSession , а затем добавить несколько значков с действиями и написать некоторые функции обратного вызова для управления плеером.

Проблема в том, что в Nativescript как я могу это сделать?

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

Это фрагмент, который я использовал в своем классе TypeScript плеера. Но не работает, потому что я получаю эту ошибку:

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

Кто-нибудь с этой проблемой, прежде чем готовы мне помочь? Большое спасибо!

1 Ответ

1 голос
/ 05 апреля 2019

Вы должны передать действительный контекст, вы передаете само определение класса контекста.

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

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