13

我想编写一个小型离子/角度应用程序,在其中从远程服务器加载动态 mp3 文件并播放它以按下按钮,或者如果选中它,我会自动播放它。我尝试使用简单<audio></audio>但我不确定这是否是一个好方法......

代码:

html

<audio id="player">
<source id="source" src="http://remote.address.com/example.mp3"></source>
</audio>

javascript

play(){
var audio= document.getElementById('player');
audio.play();
}
4

3 回答 3

28

您可以在 Javascript 代码中创建一个新的 Audio 元素……而不是在 HTML 中

例如 :

var audio = new Audio();
audio.src = "http://remote.address.com/example.mp3";
audio.load();
audio.play();
于 2016-02-16T19:21:26.793 回答
3

如果您想在 Ionic-2 / Angular-2 移动应用程序中运行声音。

在此处遵循Ionic 2指南

安装:

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

用法:

import { NativeAudio } from '@ionic-native/native-audio';

    constructor(private nativeAudio: NativeAudio) { }



    this.nativeAudio.preloadSimple('uniqueId1','path/to/file.mp3').then(onSuccess, onError);
    this.nativeAudio.preloadComplex('uniqueId2','path/to/file2.mp3', 1, 1, 0).then(onSuccess, onError);

    this.nativeAudio.play('uniqueId1').then(onSuccess, onError);

    // can optionally pass a callback to be called when the file is done playing
    this.nativeAudio.play('uniqueId1', () =>console.log('uniqueId1 is done playing'));

来源 1:https://stackoverflow.com/a/43917441/6786941

于 2017-05-11T15:00:24.603 回答
0

我已经尝试过@reba 的答案,但它在移动浏览器上不起作用,或者可能有自动播放策略停止播放音频文件。所以我创建了audio元素并src动态修改了,

<audio id="player">
   <source></source>
</audio>

在 Angular 中,

play(){
   let audio= document.getElementById('player');
   audio.src = "http://remote.address.com/example.mp3";
   audio.load();
   audio.play();
}

注意:如果您不想在页面上显示音频标签,那么您可以制作它[hidden]

于 2019-04-29T12:59:28.553 回答