Download and play a song

I am trying to download and play a song using HTML5. I use JavaScript to upload a file to the server and jPlayer to play the song, but I have problems with this plugin.

This is my code:

$(document).ready(function() { $(this) .bind("dragenter", function(event) { return false; }) .bind("dragover", function(event) { return false; }) .bind("drop", function(event) { var file = event.originalEvent.dataTransfer.files[0]; event.preventDefault(); $("#state").html("Loading..."); $.ajax({ url: 'upload.php', async: true, type: 'POST', contentType: 'multipart/form-data', processData: false, data: file, success: function(data) { $("#state").html("Ready!"); $("#player").jPlayer( { ready: function() { $(this).jPlayer("setMedia", { oga: file.name }).jPlayer("play"); }, supplied: "oga" }); }, beforeSend: function(xhr) { xhr.setRequestHeader("X-File-Name", file.name); xhr.setRequestHeader("Cache-Control", "no-cache"); } }); }); }); 

The file is uploaded to the server, but jPlayer does not play it, and I cannot understand why ...

@vigrond: Yes, I can !;)

 <html id = "homepage"> <head> <title>Echo</title> <script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script> <script type = "text/javascript" src = "jquery.jplayer.min.js"></script> <script type = "text/javascript" src = "upload.js"></script> </head> <body bgcolor = "black"> <div style = "margin: 0 auto; text-align: center"> <h1 style = "margin-top: 100px; color: white">Drag and drop a song...</h1> <h2 id = "state" style = "color: white"></h2> </div> <div id = "player"></div> </body> </html> 
+4
source share
1 answer

The main problem to understand is that all browsers act differently when it comes to HTML5 audio support. (see here http://www.w3schools.com/html5/html5_audio.asp )

That is why jPlayer has a flash backup solution.

By default, jPlayer first tries to find an html5 solution and reverts to flash with this default value:

 solution: "html,flash" //Set by default, no declaration necessary 

To support the flash function, you must install swfPath in the contained directory of the Jplayer.swf file that jPlayer comes with.

 swfPath: "/js" 

In addition, jPlayer recommends at least two different versions of the same file to maximize HTML5 support. For example, .ogg and .mp3.

  $("#player").jPlayer({ ready: function () { $(this).jPlayer("setMedia", { oga: "http://www.vigrond.com/jplayerTest/beer.ogg", mp3: "http://www.vigrond.com/jplayerTest/beer.mp3" }).jPlayer("play"); }, supplied: "oga, mp3", swfPath: "/js", solution: "html,flash" }); 

As an example, I installed here the test page of the invisible jPlayer player with the code and directory structure: http://vigrond.com/blog/2011/12/01/invisible-html5-flash-audio-player-using-jplayer/

Let me know if this helps!

0
source

Source: https://habr.com/ru/post/1384223/


All Articles