2013-02-07 1 views
0

하나의 웹 페이지에 47 개의 미디어 요소가 있습니다. 페이지를 열면 모두 미리로드하려고 시도하고 거의 파란색 진행 막대가 사방으로 날아갑니다. 그들 중 일부는 그것을 만들지 만 다른 이들은 결코 시작하지 않습니다. 각각의 src 태그는 내 보관 용 계정의 mp3 파일을 가리 킵니다. 처음 시작한 적이없는 게임을 클릭하면 재생되지 않습니다. 내가하고 싶은 것은 사용자가 그 중 하나를 클릭하지 않으면 다운로드를 시작하지 않는 것입니다.한 페이지에 많은 미디어 요소가있는 오디오 요소의 문제가 있습니다.

src를 ''로 설정하고 onclick = "this.src = 'the url'설정을 시도했지만 작동하지 않았습니다. 누락 된 노래를 다운로드하라고 사용자에게 요청했습니다.

필자는 코딩 수정을 시도 할 것이지만 실제로 이런 경우에이를 필요로 할 때까지 미리로드를 비활성화하는 간단한 방법이 있어야 할 것 같습니다. 이견있는 사람?

감사합니다.

답변

0

거의 동일한 문제가 있었는데 mediaelementjs가 대부분의 브라우저에서 복수 인스턴스 을 지원하지 않는다고 알았습니다. 그래서 저는 이것을 위해 UbaPlayer를 사용했습니다. 그것이 가능하지 않은 경우 는 각 오디오 태그 에 ... 재생기, player2 같은 고유 증가 ID를 설정하려고 동적 같이 그것들을 초기화 :

var players = []; 

$('audio').each(function(i){ 

    players[i] = new MediaElementPlayer('#player'+i, { 
     features: ['playpause', 'progress'], 
     audioWidth: 250, audioHeight: 30, 
     success: function (mediaElement) { mediaElement.pause(); mediaElement.load(); } 
    }); 
0
안녕

환영! 문제에 대한

간단한 대답는 다음과 같이 각 오디오 태그에 프리로드 매개 변수를 넣어 것입니다 :

<audio src="http://yourdropbox.mp3" preload="none"></audio>

이 한 번에로드 모든 선수의 문제를 해결해야한다.

대답은입니다. 대부분의 응용 프로그램에서 한 페이지의 많은 플레이어가 모든 비디오를 제대로 재생하려면 약간의 작업이 필요합니다.

앞서 언급 한 사전로드 매개 변수는 IE9에서 아무 것도하지 않는다고 생각합니다. 이 문제를 해결하기 위해 IE9를 심 모드로 전환시키는 코드를 추가했습니다.

$('audio').mediaelementplayer({ 
    /*@cc_on 
    @if (@_jscript_version == 9) 
    mode: 'shim', 
    @end 
    @*/ 
    plugins: ['flash','silverlight'] 
}); 

이제 한 페이지에 많은 오디오 플레이어를 장착 할 수 있어야합니다. 그러나 소수의 플레이어가 여전히 작동하지 않는다는 것을 알 수 있습니다. 이는 mediaelement.js가 활성화 될 때 브라우저가 모든 오디오 파일을 다운로드하라는 요청을 보내기 때문입니다. 빠른 인터넷 연결에서는 작동하지만 다른 제품에서는 실패 할 수 있습니다. 따라서 가장 좋은 해결책은 오디오 플레이어 중 일부만 표시 한 다음 사용자가 단추를 클릭하거나 아래쪽으로 스크롤하여 더 많은 오디오 플레이어를 표시하도록하는 것입니다.