我正在开发一个应用程序,我需要将一些音频文件放入 /src/assets
文件夹中,并在点击按钮时播放它们。
我使用 native 媒体对象如下:
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()
函数。
音频根本无法播放!!
有什么理由吗?
最佳答案
我昨天遇到了同样的问题(刚刚开始使用 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()
block 运行,但代码会默默失败。音频文件无法在 Android 模拟器(运行 Android 6.0)上播放,但可以在真实设备上播放。
关于android - 如何播放 Ionic2 附带的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43314337/