사운드 재생
function () {
$('.audio').each(function () {
var $this = $(this);
var id = $this.attr('audioid');
var src = $this.attr('src');
var soundsize = $this.attr('soundsize');
$this.append('<audio></audio>');
$this.append('\
<div class="btn-group audio-control">\
<button type="button" class="btn btn-default btn-repeat"><span class="glyphicon glyphicon-repeat"></span></button>\
<button type="button" class="btn btn-default btn-play"><span class="glyphicon glyphicon-play"></span></button>\
<button type="button" class="btn btn-default btn-pause"><span class="glyphicon glyphicon-pause"></span></button>\
<button class="btn btn-default" disabled="disabled">\
<div class="progress">\
<div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width:0;">\
<span class="sr-only">60% Complete</span>\
</div>\
</div>\
</button>\
<button class="btn btn-default btn-size" disabled="disabled"></button>\
</div>');
var width = (soundsize < 20 ? 20 : soundsize > 60 ? 60 : soundsize) * 300 / 60;
$this.find('.progress').width(width);
var $btnplay = $this.find('.btn-play');
var $btnpause = $this.find('.btn-pause').hide();
var $btnrepeat = $this.find('.btn-repeat');
var $btnsize = $this.find('.btn-size').text(soundsize + 's');
var $audio = $this.find('audio');
var $progressbar = $this.find('.progress-bar');
$btnplay.bind('click', function () {
if (!$audio.attr('src')) {
$.ajax({
url: 'Sound.ashx',
data: { id: id, url: src },
dataType: 'json',
type: 'POST',
success: function (data, textStatus, jqXHR) {
//
if ($audio.attr('src') != data.url) {
$audio.bind({
'canplaythrough': function () {
//alert(' , ');
this.volume = 1;
this.play();
},
'timeupdate': function () {
//
var duration = this.duration;
var currentTime = this.currentTime;
$progressbar.width((currentTime / this.duration) * width);
},
'pause': function () {
$btnplay.show();
$btnpause.hide();
},
'ended': function () {
$btnplay.show();
$btnpause.hide();
},
'playing': function () {
$btnplay.hide();
$btnpause.show();
}
});
$audio.attr('src', data.url);
}
}
});
}
else {
$audio[0].play();
}
});
$btnpause.bind('click', function () {
$audio[0].pause();
});
$btnrepeat.bind('click', function () {
$audio[0].currentTime = 0;
$audio[0].play(); ;
});
})
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//
var id = context.Request["id"];
var url = context.Request["url"];
//
var filepath = "/Audio/" + id + ".mp3";
if (System.IO.File.Exists(context.Server.MapPath(filepath)))
{
context.Response.Write("{\"url\":\"" + filepath + "\"}");
return;
}
HttpPost clientContext = new HttpPost(url);
var data = clientContext.GetBytes();
SpeexAudio speex = new SpeexAudio();
try
{
var filename = speex.Decoder(data
, context.Server.MapPath("~/Audio/ffmpeg.exe")
, context.Server.MapPath("~/temp/")
, context.Server.MapPath(filepath)
, SpeexDecoderType.MP3);
context.Response.Write("{\"url\":\"" + filepath + "\"}");
return;
//context.Response.Redirect("~/Audio/" + filename);
}
catch (Exception)
{
}
//context.Response.Write("Hello World");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.