2014-05-13 5 views
0

나는이 문제를 다양한 포럼에 가져 왔으며 여기에서 한 번 (주제를 벗어난 것으로 차단 된 곳). 저에게 on-topic - 특정 프로그래밍 문제, 소프트웨어 알고리즘 및 프로그래머가 일반적으로 사용하는 소프트웨어 도구 인 것 같습니다.모바일 브라우저에서 swiffy HTML5 파일로 오디오를 만드는 방법은 무엇입니까?

나는 사운드가있는 플래시 SWF 애니메이션 웹 사이트를 운영하고 있습니다. Google's swiffy을 사용하여 SWF를 HTML5로 변환했습니다. 데스크톱 PC에서 Chrome, FF 및 IE를 사용하면 소리가 들리지만 Mobile Safari and Android browsers에는 표시되지 않습니다. 내 iPad의 Chrome에는 없습니다.

오디오는 swiffy에서 생성 된 코드 (예 : http://www.casedasole.it/testing/swiffy.html)에 포함되어 있으며 base64로 인코딩 된 MP3 인 것처럼 보입니다 ("data : audio/mpeg; base64"및 "format": "MP3" html로).

swiffy에 대한 개발자 포럼이 없기 때문에 feedback form에서 답장을받지 못했습니다. 모바일 사파리, Android 브라우저 및 iPad Chrome이 소리를 재생하는 것을 확인하기 위해 둘러 보았습니다. 사파리의 경우, "You cannot preload sound files"과 같은 것을 발견하지만, 사운드가 swiffy에 내장되어 있기 때문에 미리로드 할 사운드 파일이 없습니다. 안드로이드와 iPad의 두 가지 Chrome 제품 모두 소리가 나지 않는 이유는 또한 수수께끼입니다.

Google이 관리하지 못했지만 문제를 해결할 해킹이 없다고 생각하지만 통찰력을 높이 평가합니다.

답변

0

당신은 당신이 숨겨진 HTML5 MP3 플레이어가 어디 그래서, 액션 스크립트 내에서, 당신은 자바 스크립트에의 getURL 호출을 보낼 수있는 메인 HTML 파일로 Swiffy에서 플래시를 통신 할 수있는, 뭔가 같은 :

HTML에서
getURL("Javascript:playSound();"); 

, 자바 스크립트 함수 내에서 다음과 같은 내용이 표시됩니다.

<audio controls> 
<source src="test.ogg" type="audio/ogg"> 
<source src="test.mp3" type="audio/mpeg"> 
</audio> 

저는이 작업을 계속하고 있지만 도움이 되었기를 바랍니다.

+0

Victor에게 감사하지만 비디오와 오디오를 동기화해야합니다. 별도의 오디오 플레이어가이를 보증하지는 않습니다. – plugincontainer

0

나는 꽤 늦다는 것을 알고 있지만, 어떤 사람들은 똑같은 문제에 직면하여이 게시물에 올 수 있다고 생각합니다. 그래서 내 대답을 여기에서 제공하고 싶습니다.

Victor가 말했듯이 getURL을 사용하여 사운드를 외부로 트리거 할 수 있습니다. 하지만 getURL을 사용하면 javascript 쪽에서 Web Audio API를 사용하게됩니다. Web Audio API를 사용하기 때문에 모바일에서 동시에 여러 트랙을 재생할 수 있습니다. 라이브러리 SoundJS를 내 프로젝트에 통합했습니다.

그러나 모든 오디오 프레임을 getURL 함수로 변경해야하기 때문에 실제로 많은 시간이 걸립니다. 나는 네이티브 오디오 객체를 사용하는 swiffy 코어를 한번만 편집 할 수 있다는 또 다른 선택적인 아이디어를 발견했다. (그러나 모바일에서 한 번에 하나의 사운드 만 재생할 수도 있음을 의미한다.)

원래 swiffy는 base64 인코딩 된 사운드를 재생하기 위해 네이티브 오디오 객체를 만듭니다. 모바일 제한으로 인해 소리가 입력 이벤트에 의해 트리거되지 않으면 아무 소리도 들리지 않습니다. 그러나 활성 오디오 객체를 다시 사용할 수 있습니다.

먼저 애니메이션을 시작하는 버튼이 있습니다.이 버튼도 오디오 객체를 만들고 재생합니다 (길이가 0 인 base64 인코딩 사운드).

audio = new Audio("data:audio/mpeg;base64,"); 
audio.play(); 

swiffy 핵심 스크립트에서 키워드 "new Audio"를 검색하면 swiffy가 재생되는 부분이 표시됩니다.대신에 새로운 오디오 객체를 createing의, Swiffy에서이 수정하지 않고, 기존의 오디오 객체 그 후

audio.src = a.sound; 
audio.play(); 

을 사용할 수 있도록, 당신의 SWF도 모바일에서 사운드를 재생 할 수 있어야한다.

그러나 해킹과 비슷합니다. 예기치 않은 문제가 발생할 수 있습니다.

+0

나는 swiffy를 포기했지만 해결책을 찾고 싶습니다. 예제에 대한 링크를 제공 할 수 있습니까? – plugincontainer

+0

위를 참조하십시오, 나는 swiffy에게 또 다른 기회를주고 싶습니다. 파일은 플래시의 두 배이지만 mp4의 일부분입니다. – plugincontainer

+0

그것은 내 자신의 프로젝트에 상당히 해킹되어 병합되었다. 내 전체 프로젝트를 제공하지 않고서도 수정 된 swiffy를 실행할 수 있다고 생각하지 않는다. –

관련 문제