2010-06-03 3 views

답변

8

분명히이 이어야하며, W3C 나 Apple 같은 공급 업체에서 작동하지 않아야한다고하는 설명서를 찾을 수는 없습니다. 캐시 매니페스트는 적어도 iPad & 아이폰의 Safari에서는 작동하지 않는 것 같습니다.

응용 프로그램이 온라인 상태 일 때 소리가 잘 들립니다 (매번 새로운 내용이로드되고 캐시되지는 않지만). 오프라인 모드에있을 때 리소스가 존재하지 않는다고 불평하지 않습니다. 자바 스크립트, CSS, HTML 또는 이미지 리소스를 포함하는 것을 잊었을 때).

불평 (또는로드) 대신; 요소에 컨트롤이있는 경우 컨트롤이 "오디오 파일을 재생할 수 없습니다."라는 상자로 바뀝니다. 또는 컨트롤이없는 요소 인 경우 (즉, JavaScript에서 모두를 통해 .play()로 액세스 한 경우) 단순히 재생되지 않습니다 (오류가 발생하지 않고 소리가 전혀 들리지 않고 JavaScript가 계속 실행됩니다). 정상적으로).

매우 작은 (< 20k) 파일로 테스트 한 결과 크기가 같지 않은 것처럼 보이기 때문에 복사를 거부했습니다. 이미지를 사용할 수있는 방법으로 사운드를 페이지의 리소스 (예 : Base64로 인코딩 됨)로 인코딩 할 수 있는지 확실하지 않지만 해당 옵션을 조사 할 것입니다. 가능한 것으로 판단됩니다. 데이터 URI 문자열로 인코딩 된 오디오 데이터를 시도해 보았습니다. 즉석에서 오디오를 생성 해 보았습니다. Safari는 바탕 화면에서 제대로 작동하지만 iPhone/iPad OS에서는 작동하지 않습니다 (적어도 버전 3.x에서는 작동하지 않습니다. iOS 4에서는 1 주일 동안 밖에 나오지 않을 것이며 iPad를 고칠지라도 몇 달 동안은 iPad에 대해 예상되지 않습니다.

iOS에서 사운드 파일을 캐시하는 것을 거부하는 것은 구현 버그이거나 제한된 기능을 의도 한 것 같습니다. 분명히 짜증나 며 많은 유스 케이스에 대한 막연함을 보여줍니다.

다른 HTML5 클라이언트에서 어떤 일이 발생하는지 잘 모르겠습니다. 특히 Andriod에 대해 알고 싶습니다. 오디오에 대한 Google의 지원은 별 것도 아니므로 동일한 제한 사항으로 인해 어려움을 겪을 수 있습니다.

+0

참고 이유 JavaScript .play() 그것은 아이폰/ipad (사용자 입력이 있어야합니다)에 대한 사파리에서 허용되지 않기 때문에 컨트롤 적은 요소에서 작동하지 않습니다. "오디오 파일을 재생할 수 없습니다"와 관련하여 파일이 지원되지 않았기 때문에 문제가 있음을 발견했습니다. 어떤 이유로 mp3 파일을 가지고 이런 일이 일어났습니다. –

+0

@jd 감사합니다. 그러나 명확히하기 위해, JavaScript는 실제로 잘 작동하지만 (빠른 연결) (단속이 느린 경우 사운드 파일을 다시 가져 오기 때문에) 잘 작동한다는 것입니다. 캐시 매니페스트는 오프라인 HTML5 앱의 사운드 파일에 적용되지 않습니다. 자바 스크립트 호출이 작동하고 모든 사운드 파일이 작동합니다. 이것은 파일 크기에 관계없이 나타납니다. –

+1

감사합니다. 나는 그저 스스로 테스트했고, 당신이 말한 것과 일치합니다. 큰 망신. – airportyh

1

당신은 항상 클라이언트 SQLlite DB

+1

앱 당 저장 용량이 5MB로 제한되지 않습니까? –

0

난 당신이 cache manifest 오디오 파일을 지정할 수 없습니다 어떤 이유가 표시되지 않습니다 회담 디코딩/인코딩 층을 개발할 수 있습니다.

+0

문제가있을 수 있습니다. http://stackoverflow.com/questions/1612116/html5-local-storage-of-audio-element-source-is-it-possible – UpTheCreek

관련 문제