2012-02-15 19 views
7

Jaki jest najlepszy i wieloprzeglądowy sposób odtwarzania pliku mp3 (bardzo krótkiego) za pośrednictwem javascript? Próbowałem różnych sposobów, ale zawsze jest to problem ...Odtwarzanie pliku mp3 przy użyciu javascript

EDIT 1:

nie potrzebują „pełny” odtwarzacz, po prostu trzeba funkcję niż mogę dzwonić za każdym razem coś się dzieje

EDIT 2:

Ok, mam wyjaśnić lepiej mój problem. Serwer to smartfon podłączony do sieci LAN, ale nie zawsze do Internetu. Chcę używać mp3, ponieważ plik waży tylko 3kb (zamiast 60kb wav), ale jeśli mechanizm odtwarzania tego pliku jest zbyt "ciężki" (odtwarzacz lub jquery.js), lepiej jest użyć pliku wav. Inne sugestie?

+0

znacznik dźwiękowy html5 – Johan

+1

http://jplayer.org –

+0

@Johan Próbowałem tagu audio html5 z [this] (http://msdn.microsoft.com/en-us/library/gg589489 (v = vs.85) .aspx), ale nie działa na Chrome – supergiox

Odpowiedz

0

Polecam używanie Flowplayer. Jest napisany w formacie Flash i JavaScript i ma funkcję zastępczą HTML5.

Śródroczny odnośnik: Na wszystkich urządzeniach z systemem iOS (iPadach itp.) Nie ma autoodtwarzania.

5

Załaduj stronę za pomocą bezpośredniego pobrania do pliku audio. Wykryj, czy przeglądarka obsługuje pliki MP3. Jeśli tak, stopniowo ulepszaj bezpośrednie pobieranie do tagu AUDIO. Oto przykład:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Audio demo</title> 
    <script src="http://cdnjs.cloudflare.com/ajax/libs/modernizr/2.0.6/modernizr.min.js"></script> 
</head> 
<body> 
    <p id="audio"> 
     <a href="BadAppleEnglish.mp3">Listen &raquo;</a>   
    </p> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script src="http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script> 
    <script src="audio.js"></script> 
</body> 
</html> 

I JavaScript:

$(function() { 
var audioElement = $('#audio'), 
    href = audioElement.children('a').attr('href'); 
$.template('audioTemplate', '<audio src="${src}" controls>'); 
if (Modernizr.audio.mp3) { 
    audioElement.empty(); 
    $.tmpl('audioTemplate', {src: href}).appendTo(audioElement); 
} 
}); 

Mogę sobie wyobrazić, że większość zillions Montowane MP3 grających wtyczek działa w ten sposób.

UPDATE:

Skoro masz edytowane pytanie, aby określić, że wolisz rozwiązanie, które nie korzysta z jQuery, będę podkreślić, że przepisywanie nie używać jQuery jest trywialne. Jest tylko dłuższy i mniej elegancki. Należy pamiętać, że biblioteki JavaScript ładowane z CDN są zwykle buforowane przez przeglądarkę.

+0

Edytowałem pytanie – supergiox

14

Użyj tego:

new Audio('your/url/here').play() 

Dokumentacja dla tej (HTMLAudioElement) można znaleźć na stronie MDN, trzeba pamiętać, że większość z tych kontroli są dziedziczone przez HTMLMediaElement.

Powiązane problemy