2017-04-10 52 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)上播放,但在真實設備上工作。