smartAudio插件无法在Android真实设备上运行

时间:2018-11-05 02:05:27

标签: android angular cordova ionic-framework

嗨,有人可以帮我弄清楚为什么smartAudio插件不能在真正的android设备上运行,但是在测试应用程序时可以在Web浏览器上完美地工作吗?

我运行了以下命令:

$ ionic cordova plugin add cordova-plugin-nativeaudio
$ npm install --save @ionic-native/native-audio

下面是我播放声音的代码:

smart-audio.ts

import { Injectable } from '@angular/core';
import { Platform } from 'ionic-angular';
import { NativeAudio } from '@ionic-native/native-audio';

@Injectable()
export class SmartAudio {

audioType: string = 'html5';
sounds: any = [];

constructor(public nativeAudio: NativeAudio, platform: Platform) {

    if(platform.is('cordova')){
        this.audioType = 'native';
    }

}

preload(key, asset) {

    if(this.audioType === 'html5'){

        let audio = {
            key: key,
            asset: asset,
            type: 'html5'
        };

        this.sounds.push(audio);

    } else {

        this.nativeAudio.preloadSimple(key, asset);

        let audio = {
            key: key,
            asset: key,
            type: 'native'
        };

        this.sounds.push(audio);
    }      

}

play(key){

    let audio = this.sounds.find((sound) => {
        return sound.key === key;
    });

    if(audio.type === 'html5'){

        let audioAsset = new Audio(audio.asset);
        audioAsset.play();

    } else {

        this.nativeAudio.play(audio.asset).then((res) => {
            console.log(res);
        }, (err) => {
            console.log(err);
        });

    }

}

}

app.module.ts

    import { BrowserModule } from '@angular/platform-browser';
    import { ErrorHandler, NgModule } from '@angular/core';
    import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
    import { SplashScreen } from '@ionic-native/splash-screen';
    import { StatusBar } from '@ionic-native/status-bar';
    import { NativeAudio } from '@ionic-native/native-audio';
    import { SmartAudio } from '../providers/smart-audio/smart-audio';

    import { MyApp } from './app.component';
    import { HomePage } from '../pages/home/home';
    import { KevinPage } from '../pages/kevin/kevin';

    @NgModule({
  declarations: [
    MyApp,
    HomePage,
    KevinPage
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage,
    KevinPage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    NativeAudio,
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    SmartAudio
  ]
    })
    export class AppModule {}

app.component.ts

import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';

import { HomePage } from '../pages/home/home';
import { SmartAudio } from '../providers/smart-audio/smart-audio';
import { NativeAudio } from '@ionic-native/native-audio';
@Component({
  templateUrl: 'app.html'
})
export class MyApp {
  rootPage:any = HomePage;

  constructor(platform: Platform, statusBar: StatusBar, splashScreen: 
SplashScreen, smartAudio: SmartAudio, nativeAudio: NativeAudio) {
platform.ready().then(() => {
  // Okay, so the platform is ready and our plugins are available.
  // Here you can do any higher level native things you might need.
  statusBar.styleDefault();
  splashScreen.hide();
  smartAudio.preload('policeSound', './assets/sounds/basic.mp3');
    });
  }
}

方法:

 playSound(){
this.smartAudio.play('policeSound');

}

请帮助我解决此问题,我看过其他有关同一错误的帖子,但仍然没有运气,我正在使用Ionic框架并使用我的Android设备进行测试

0 个答案:

没有答案