2012-09-04 2 views
0

나는 phonegap을 사용하여 사운드 파일을 재생하는 JavaScript 함수를 사용합니다. 일반적으로 정상적으로 작동하지만 파일을 다운로드하는 동안 img src을 로딩 아이콘으로 변경하고 싶습니다. 그러나 파일을 재생 한 후에는 src가 으로 변경됩니다.소스 변경 후 Jquery 새로 고침 이미지

+new Date().getTime()을 src 끝에 추가하려고했지만 도움이되지 않았습니다. 저기에 어떤 생각이 있니?

function playSound(){ 


var img = $(this).prev(); 

img.attr("src", "css/images/ajax-loader.gif?"+new Date().getTime()); 


var url = "http://some.com/fanky.mp3"; 
mediaTTS = new Media(url, onSuccessTTS(url), onErrorTTS); 
mediaTTS.play(); 

} 
+0

다시 추가 할 수 있습니다. [javascript를 통한 사전로드 이미지에 대한 Google 검색] (https://www.google.se/search?q=preload+images+javascript&aq=f&sugexp=chrome,mod=5&sourceid=chrome&ie=UTF-8). 먼저 시도해 보시고, 계속 진행한다면 계속 진행하십시오. :) –

답변

0

이것은 현재 실행 루프가 끝날 때까지 이미지가 다시 그려지지 않기 때문일 수 있습니다. Media.play()이 (가) 차단되면 재생을 마칠 때까지 이미지가 변경되지 않을 수 있습니다.

내 의혹을 확인하기 위해,이 코드를보십시오 : src 속성을 제거하는

function playSound(){ 
    var img = $(this).prev(); 
    img.attr("src", "css/images/ajax-loader.gif?"+new Date().getTime()); 
    setTimeout(function() { 
     var url = "http://some.com/fanky.mp3"; 
     mediaTTS = new Media(url, onSuccessTTS(url), onErrorTTS); 
     mediaTTS.play(); 
    }, 100); 
} 
+0

고마워, 그게 문제 야. 코드를 사용하면 코드를 업데이트하고로드하는 애니메이션을 표시하지만 얼마 동안 애니메이션을 차단합니다. 그러나 그것은 아무것도 아닌 것보다 낫습니다. – noway

+0

그래, 미디어 요소가 주 스레드에서 차단 된 것 같습니다. 문서를보고 비동기 적으로 미리로드 할 수있는 방법이 있는지 확인해야합니다. –

0

시도를 한 후 지연 아마 프리로드 문제입니다 다른 SRC

function playSound(){ 
    var img = $(this).prev(); 
    img.removeAttr("src").attr("src","css/images/ajax-loader.gif?"+new Date().getTime()); 
    var url = "http://some.com/fanky.mp3"; 
    mediaTTS = new Media(url, onSuccessTTS(url), onErrorTTS); 
    mediaTTS.play(); 
}