2013-10-23 2 views
1

나는 사운드 클라우드 기반의 웹 사이트를 만드는 오전 파형 색상을 수정하고 나는 사운드 클라우드의 블로그에서 읽은 다음사운드 클라우드는

How it should be

처럼 보이게하기 위해 사운드 클라우드 파형 색상을 수정해야하며 보였 waveform.js 누군가가 나에게 내가 동일한 효과를 얻을 수있는 방법을 알려 주시기 바랍니다이

How it looks now

같은 트릭하지만 여전히 내가 무엇입니까 뭔가를 할 것입니다. 사운드 크라우드 홈페이지에서 캔버스를 사용하여 똑같은 일을하고있는 것을 보았습니다.하지만 정확히 어떻게 할 것인가는 아닙니다.

http://w1.sndcdn.com/1m91TxE6jSOz_m.png

사람이 나에게 이것을 달성 할 수있는 올바른 방법을 안내 할 수 다음과 같이 사운드 클라우드 API에서 반환 된 이미지의 파형이다.

답변

3

넌 (CORS이 예에서 문제되지 않음을 의미한다)의 화소를 반복하지 않고 이것을 달성하는 복합 모드 및 클리핑의 조합을 사용할 수

Fiddle

Waveform progress

필수 코드 :

가정하면 이미지가로드 된, 우리가 좋은 캔버스 설정이 이동 :

function loop() { 

    x++;  // sync this with actual progress 

    // since we will change composite mode and clip: 
    ctx.save(); 

    // clear background with black 
    ctx.fillStyle = '#000'; 
    ctx.fillRect(0, 0, w, h); 

    // remove waveform, change composite mode 
    ctx.globalCompositeOperation = 'destination-atop'; 
    ctx.drawImage(img, 0, 0, w, h); 

    // fill new alpha, same mode, different region. 
    // as this will remove anything else we need to clip it 
    ctx.fillStyle = '#00a'; /// gradient 
    ctx.rect(0, 0, x, h); 
    ctx.clip();    /// set clipping rect 
    ctx.fill();    /// use the same rect to fill 

    // remove clip and use default composite mode 
    ctx.restore(); 

    // loop until end 
    if (x < w) requestAnimationFrame(start); 
} 

는 "재생하지 않은"파형이 다른 색 단순히 background와 캔버스 요소의 스타일을 갖고 싶어.

+0

안녕하세요,이 트릭을 할 것 같아요하지만 단 하나의 문제가 있습니다. 진행률 막대는 '

'과 같은 div이고 너비는 노래의 진행과 함께 점차 증가합니다. 이런 식으로 진행 바를 할 수있는 방법이 있습니까? 당신이 나의 위치를 ​​볼 필요가있는 경우에 나는 당신에게 URL를 보낼 수있다. –

-2

soundcloud를 iframe과 통합하는 경우 수정할 수 없습니다.

도메인 간 정책을 잊지 마세요. 그렇지 않으면 작동하지 않습니다.

+0

아니요, iframe에 soundcloud를 사용하고 있지 않습니다. 나는 soundcloud API를 사용하고 있습니다. –

+0

예제 섹션의 첫 번째 예제와 동일하게 수행 하시겠습니까? http://waveformjs.org/ – Defoncesko

+0

아니요,이 경우에는 흰색 배경에 검은 색 이미지가 있습니다. 가장 중요한 것은 진행률 표시 줄입니다. 진행 상황이 그렇게 보이지 않아 나머지는 정상입니다. –

관련 문제