0

我正在尝试使用 Ionic 运行后台模式,但是当我播放歌曲并启用了后台模式时,应用程序崩溃了。

实际上,是否可以使用 Ionic 制作背景模式?

这是我的代码:

import { Component } from '@angular/core';
import {NavController} from '@ionic/angular';
import {NativeAudio} from '@ionic-native/native-audio/ngx';
import {BackgroundMode} from '@ionic-native/background-mode/ngx';

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage {

  constructor(public navCtrl: NavController,
              public nativeAudio: NativeAudio ,
              public backgroundMode: BackgroundMode) {
    this.nativeAudio.preloadSimple('audio1', 'assets/audio1.mp3').then((msg) => {
      console.log('message: ' + msg);
    }, (error) => {
      console.log('error: ' + error);
    });
  }

  public playAudio(){
    this.backgroundMode.enable();
    this.backgroundMode.on('activate').subscribe(() => {
      this.nativeAudio.play('audio1');
    });
    this.nativeAudio.play('audio1', () => console.log('audio1 is done playing'));
  }

}

这是我目前的配置。

/bg-mode-example$ ionic info

Ionic:

   Ionic CLI                     : 6.11.11 (/usr/local/lib/node_modules/@ionic/cli)
   Ionic Framework               : @ionic/angular 5.3.5
   @angular-devkit/build-angular : 0.1000.8
   @angular-devkit/schematics    : 10.0.8
   @angular/cli                  : 10.0.8
   @ionic/angular-toolkit        : 2.3.3

Cordova:

   Cordova CLI       : 10.0.0
   Cordova Platforms : android 9.0.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.2.1, (and 6 other plugins)

Utility:

   cordova-res (update available: 0.15.1) : 0.6.0
   native-run (update available: 1.2.1)   : 0.2.8

System:

   Android SDK Tools : 26.1.1 (/home/gabriel/Android/Sdk)
   NodeJS            : v10.19.0 (/usr/bin/node)
   npm               : 6.14.8
   OS                : Linux 5.4

另外,我有一个 gitlab 回购https://gitlab.com/gabrielrincon/bgmode-testing/

怎么了?

非常感谢。

4

1 回答 1

2

我可以做到的。

问题是权限。FOREGROUND_SERVICE。

我添加到platforms/android/app/src/main/AndroidManifest.xml 并工作

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

希望对你有帮助

于 2020-10-12T15:24:37.203 回答