2017-04-10 88 views
2

我正在开发一个应用程序,我需要将一些音频文件放在/src/assets文件夹中,并在轻按按钮时播放它们。如何播放Ionic2附带的音频

我用本地媒体对象如下:当按钮被窃听

import { MediaPlugin, MediaObject } from '@ionic-native/media'; 

constructor(public navCtrl: NavController, public navParams: NavParams, 
    public media: MediaPlugin) { 

    } 

listenAudio() { 
    const onStatusUpdate = (status) => console.log(status); 
    this.media.create('assets/audio/sample.mp3', onStatusUpdate) 
     file.play(); 
     }) 

    } 

listenAudio()函数将被调用。

音频根本不播放!

任何理由?

+0

也许路径不正确..尝试'../assets/audio/sample.mp3' –

回答

1

昨天我碰到同样的问题(刚刚开始使用Ionic)。一些试验和错误后,我终于得到了以下与保存在src/assets/mp3/sample.mp3 MP3文件的工作:

let filepath: string = 'assets/mp3/sample.mp3'; 

// The filepath needs to be a URL for Android 
if(this.platform.is('android')) { 
    filepath = 'file:///android_asset/www/assets/mp3/sample.mp3'; 
} 

this.media.create(filepath, onStatusUpdate).then((file: MediaObject)) => { 
    file.play(); 
}) 
.catch(e => console.log('Error opening media file', e)); 

一对夫妇的其他问题,我发现:

  • 如果音频文件的路径是不正确的(例如,音频文件不存在),我期望catch()块运行,但代码无声无息地失败。

  • 音频文件不在Android模拟器(运行Android 6.0)上播放,但在真实设备上工作。