我想编写一个小的离子/角度应用程序,我从远程服务器加载动态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();
}
答案 0 :(得分:23)
您可以在Javascript代码中创建新的音频元素...而不是在HTML
中例如:
var audio = new Audio();
audio.src = "http://remote.address.com/example.mp3";
audio.load();
audio.play();
答案 1 :(得分:3)
如果你想在Ionic-2 / Angular-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'));
答案 2 :(得分: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]