2013-03-03 13 views
17

Bir MP3 akışı okumak istiyorum (icecast'ten, ICY meta verilerini okumak ve ardından bir ikili MP3 verisini bir Web Audio Api'ye geçirmek).WebKit, Firefox'un "moz-chunked-arraybuffer" xhr yanıtına eşdeğerdirTüm

Firefox'un ilerlemeyle ilgili verileri okumak için "moz-chunked-arraybuffer" xhr responseType'ı var, ancak webkit/chrome için herhangi bir eşdeğer bulamıyorum.


DÜZENLEME 2014/02/03:

Krom xhr.responseType "akışı"

uygulamaya başladığını --enable-deneysel-webkit ile (Chrome indi edilir "ayrıştırma" https://code.google.com/p/chromium/issues/detail?id=240603


DÜZENLEME 2014/07/10: henüz JavaScript doğrudan kullanılabilir olan) bayrağı -özellikler), fakat xhr.response nesnesi (Akış sonuçlanmıştır

Spec şimdi ortamında gerçekleştirilmiştir:

Streams API: https://github.com/whatwg/streams

Krom Devs "standardizasyon tamamlanması beklenmeden bazı prototip yapmak"


DÜZENLEME 2015/01/22 planları XHR'de uygulanmayacak (sadece prototip için). Son zamanlarda Chrome'da (deneme bayrağı arkasında) taşınan Fetch API uygulamasında It will finally be implemented.


DÜZENLEME 2015/01/30: Getirme API Intent to Ship var! Akımlar API'si "yaklaşan entegrasyonlar" olarak ilan edildi, oldukça burada!


DÜZENLEME 2015/04/15:

\ o/Glory! Fetch API'si şimdi Chrome 42'ye (mevcut kararlı sürüm: http://googlechromereleases.blogspot.fr/2015/04/stable-channel-update_14.html) indi. 42 "dere gibi 'AJAX isteği' Nasıl bir tüketebilir" Hayatta tek cevabı, evren ve her şey aynı zamanda bu soruya değildir: Hikayenin

https://github.com/GoogleChrome/samples/blob/gh-pages/fetch-api/fetch-response-stream.html

Sonu :)

+0

sayesinde altın olacak olan! Çok takdir ediyorlar. – Yetti

cevap

0

Sorununuzun çözümünün html5 için tüm AudioContext nesnesini görmediğini düşünüyorum.

http://www.html5rocks.com/en/tutorials/webaudio/intro/

Ses verilerini deşifre edebilir: decodeAudioData() Bir web soketi yoluyla size müzik akışı ya da sadece http akışı yığın halinde olabilir bir AudioBuffer aracılığıyla müzik çalabilir. size sadece PlaySound() dediğimiz bir şarkıyı çalmak istediğinizde

Yani gerçek cevabı AudioContext kullanmak ve güncellemeler için

+0

Bu, _COULD_ olabilir. Neredeyse oradaydım ... 1) Icecast (icy-metadata) 'dan ekstra baytları çıkarmanız gerekir. 2) decodeAudioData(), her arabelleğinde "boş" ses için birkaç milisaniye ekler. ses –