【发布时间】:2015-11-27 01:04:50
【问题描述】:
这是一个普通的音频播放器,但如果我希望我的源是存储在我的数据库中的音频,我将如何实现这一点?
<audio controls="controls" autoplay="true" loop="loop">
<source src="WhiteChristmas.mp3"/>
</audio>
这就是我目前使用 WebService 从我的数据库中读取音频文件的方式。
[WebMethod]
public void PlayXhosa(int id)
{
using (The_FactoryDBContext db = new The_FactoryDBContext())
{
if (db.Words.FirstOrDefault(word => word.wordID == id).xhosaAudio != null)
{
byte[] bytes = db.Words.FirstOrDefault(word => word.wordID == id).xhosaAudio;
MemoryStream ms = new MemoryStream(bytes);
System.Media.SoundPlayer myPlayer = new System.Media.SoundPlayer(ms);
myPlayer.Play();
}
}
}
这就是我现在的客户端代码的样子
function PlayXhosa() {
var id = $("[id$=hiddenWord_id]").val();
$.ajax({
url: "../../WebService.asmx/PlayXhosa",
data: "{ 'id': '" + id + "'}",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
}
});
};
然后我尝试像这样调用这个函数:
var audio = document.createElement('audio');
audio.autoplay = false;
audio.oncanplaythrough = function() {
foo.disabled = false;
};
audio.src = 'PlayXhosa()';
foo.onclick = function() {
audio.play();
}
然后是按钮。
<button id="foo" disabled>play xhosa audio</button>
【问题讨论】:
标签: javascript c# html audio asp.net-mvc-5