현재 웹 오디오 API를 사용하여 스트림을 재생하는 인터넷 라디오 서비스에 대해 알지 못합니다. 그러나 나는 그것을 찾지 않을 것입니다. 나는 Audiocog's excellent Aurora.js library을 사용하여 혼자서 작업을 해왔다. JavaScript를 사용하여 오디오를 디코딩함으로써 일반적으로 사용할 수없는 브라우저에서 코덱을 사용할 수있다. 그러나, 당신이 지적한 바와 같이 호환성의 이유로, 이것은 오늘날 실험적인 것으로 간주 될 것입니다.
대부분의 인터넷 라디오 방송국은 <audio>
요소 또는 Flash 내에서 재생할 수있는 프로그레시브 HTTP 스트리밍 (SHOUTcast/Icecast 스타일)을 사용합니다. 이것은 잘 작동하지만, 특히 SHOUTcast 서버를 not quite 100% compatible with HTTP처럼 사용하면 Firefox의 일부 버전과 많은 모바일 브라우저에서 브라우저 지원을 아프게하는 경우 특히 어려울 수 있습니다. HTTP 프로그레시브로 더 나은 브라우저 및 모바일 브라우저 지원을 얻으려면 AudioPump Server이라는 자체 서버를 작성해야합니다.
사용 가능한 플래시 코드 및 ActionScript 버전에 따라 기본적으로 Flash는 HTTP를 통해 스트리밍하도록 빌드되지 않았으므로 기본적으로 모든 스트림 데이터를 무기한으로 유지하므로 deal with memory leaks in creative ways이어야합니다. 많은 사람들이 플래시 (Wowza 또는 이와 유사한 서버에서)와 RTMP를 사용합니다.이 문제를 해결하기 위해 플래시 은이었습니다.
iOS는 기본적으로 HTTP 서버에서 제공하는 정적 파일의 모음 인 HLS을 지원합니다. 인코더는 인코딩이 발생할 때 스트림의 덩어리를 각 파일에 쓰고 클라이언트는 파일을 다운로드하고 원활하게 재생합니다. 여기서 이점은 클라이언트가 스트리밍 할 비트 전송률을 선택하고 네트워크 조건이 변경되면 품질을 높이거나 낮출 수 있다는 것입니다. 이는 청크가 독립적으로 상태에 관계없이 다운로드되기 때문에 네트워크를 완전히 전환 (WiFi에서 3G로 전환) 할 수 있다는 것을 의미합니다. Android는 "HLS"를 지원하지만 버그가 있습니다. 사파리는 현재 HLS를 지원하는 유일한 브라우저입니다.
호환성 검색은 스스로 해결해야 할 필요가 없습니다. jPlayer 및 JW Player과 같은 많은 플레이어가 HTML5 오디오 지원 감지, 코덱 지원 감지를 다루며 HTML5 오디오 및 Flash 재생을위한 공통 API를 제공합니다. 또한 신속하게 실행 및 실행하려는 경우 선택적 UI를 제공합니다.
마지막으로 대부분의 스테이션에서는 자신의 미디어 플레이어에서 스트림을 재생할 수있는 링크를 제공합니다. 이것은 다운로드되고 종종 (사용자와 브라우저에 의해 설정된대로) 즉시 열리는 재생 목록 파일 (일반적으로 M3U 또는 PLS)에 링크하여 수행됩니다.플레이어 소프트웨어는이 재생 목록을로드 한 다음 스트리밍 서버에 직접 연결하여 재생을 시작합니다. Android의 경우 간단하게 link to the stream URL입니다. Content-Type
응답 헤더를 감지하고 연결을 끊고 재생을 위해 구성된 미디어 플레이어를 엽니 다. 요즘에는 직접 링크를 찾아야하지만 거기에 있습니다.
역이 컴파일되고 축소 된 소스 코드에서 파고 들지 않고 무엇을 사용하고 있는지 알고 싶다면 Fiddler 또는 과 같은 도구를 사용하여 트래픽을 감시하면됩니다. 당신은 그것이 두건의 밑에 아주 간단하다는 것을 것을을 발견 할 것이다.
매우 좋습니다. 휴대 기기의 성능은 어떻습니까? – Brad
우리는 소프트웨어 디코딩으로 모바일 프로세서에 세금을 부과하는 것이 좋은지 잘 모르기 때문에 모바일 용 앱을 만들었습니다. 그러나 최신 Android 휴대 전화에서 작동하지만 iPhone은 오랫동안 HTML Audio를 지원하지 않았지만 최신 장치에서 작동하는 것으로 들었습니다. 나는 아직 이것을 확인하지 못했다. – Bitonator