play-button in firefox on linux only points to m3u 'query'
Stefan Krüger |
.
permalink
Mon, May 25, 2015 @ 10:59 PM
Hi Community,
i have moved from windows to linux last week - and now the ‘play-button’ has stopped working - it only gives me an ‘query’ file to download (content type: m3u) my system is: Firefox38 —> no Flash installed! Kubuntu 15.04 64bit does this player need flash? if i open the query file in an text editor i can copy the url to the file and past it in my Firefox address-bar and it plays the file - so mp3 in my browser works.. i have looked in the dev-console - but there was no error message (only a huge amount of warnings about Unknown property (most of them’-moz-border-radius’)) i hope someone can help me :-) if i can help to find the cause let me know keep the music playing :-) sunny greetings stefan |
unreal_dm |
.
permalink
Fri, May 29, 2015 @ 12:58 PM
Yes you’ll need the flash player I did the same thing a couple of weeks ago moved over a profile but forgot about flash.
|
.
Hi unreal_dm,
thanks for the reply. ok i did not want to install flash - so i have written a small user-script: it searches for the playerdiv and adds a html5 audio element pointing to the file that is found in the player following script tag. and it works also on pages with more than one player - and if you click on a play button all others will be paused.. to use the script you first have to install the Greasemonkey Addon this addon allows to run user scripts on a per site/ per url basis. have fun :-) sunny greetings stefan you can find the script on github or attached: the script: Quote: —————————————- // ==UserScript== // @name ccmixter.org player converter // @namespace https://github.com/s-light/ // @description convertes the file player to raw html5 player so no flash is required. // @include http://ccmixter.org/* // @version 0.3 // @grant none // ==/UserScript== // function handlePleaseStop(event) { // console.log(“received pleaseStop event”); // if (this.paused == false) { // console.log(“i will pause playing..”); // this.pause(); // } // } function fadeOut(player) { // console.log(“this”, this); // console.log(“player”, player); var stepSize = player.getAttribute(‘stepSize’); // if fade out is finished pause player if (player.volume 0 ) { player.volume = player.volume - stepSize; } else { player.volume = 0; } window.setTimeout(fadeOut, player.getAttribute(‘fadeStepTime’), player); } } function resetVolume(player) { // reset volum to original player.volume = player.getAttribute(‘volumeOriginal’); console.log(“reset volume”); } function startFadeOut(player) { // console.log(“this”, this); // console.log(“player”, player); // backup original volume setting player.setAttribute(‘volumeOriginal’, player.volume); // target fadeTime var fadeTime = 1000; // ms // target stepSize for smothe fading (range 0..1) var stepSize = 0.01; // calculate fadeStepTime var steps = player.volume / stepSize; var fadeStepTime = fadeTime / steps player.setAttribute(‘fadeStepTime’, fadeStepTime); player.setAttribute(‘stepSize’, stepSize); // player.pause(); console.log(“fadeOut started.”); window.setTimeout(fadeOut, player.getAttribute(‘fadeStepTime’), player); } function handlePlay(event) { // console.log(“play event”, event); // this event idea does not work… // var myEvent = new Event(‘pleaseStop’); // document.dispatchEvent(myEvent); // stop all other // based on http://stackoverflow.com/a/... var audios = document.getElementsByTagName(‘audio’); // console.log( audios.length + ” audios found.”); for (var i = 0; i < audios.length; ++i) { // console.log(“audios[” + i + “]:”, audios); // if current auido is playing than paus it if(audios != event.target){ if ( !audios.paused) { startFadeOut(audios); // audios.pause(); // console.log(“audios” + i + ” paused”); } } } } function addAudioPlayer(parent_element, file_name) { var el_audio = document.createElement(“audio”); el_audio.controls = true; el_audio.src = file_name; // this does not work.. // el_audio.addEventListener(‘pleaseStop’, handlePleaseStop, false); // el_audio.addEventListener(‘play’, handlePlay, false) parent_element.appendChild(el_audio); } function convertPlayer(player) { var playercontainer = player; // get raw file url from next script-tag content. var fileURLraw = player.nextElementSibling.firstChild.data; // ” $(‘_ep_XXXXX’).href = ‘ http://ccmixter.org/content... ” var searchString = “’).href = ‘”; var searchStringIndex = fileURLraw.indexOf(searchString); if (searchStringIndex > 1) { // we think we have a url var startPosition = searchStringIndex + searchString.length; var endPosition = fileURLraw.lastIndexOf(“’”); var fileURL = fileURLraw.substring(startPosition, endPosition); // check the fileURL if (fileURL.startsWith(“ http://ccmixter.org/”)) { // now add a new html5 player.. console.log(“add Player for ‘” + fileURL +”’”); addAudioPlayer(playercontainer, fileURL); } else { console.error(“url does not start with ccmixter.org”); } } else { console.error(“can’t finde the file url.”); } } function convertAllPlayers(){ console.groupCollapsed(“convertAllPlayers:”); // plain js var players = document.getElementsByClassName(“playerdiv”); for (var i = 0; i < players.length; ++i) { convertPlayer(players); } console.log(“\t found ” + players.length + ” players”); console.log(“add play handler to document.”); document.addEventListener(‘play’, handlePlay, true) console.log(“finished.”); console.groupEnd(); } function main() { // call main function console.log(“ccmixter.org_player_converter script v0.3”) convertAllPlayers(); } main(); —————————————- edit 10.09.2017: just fixed a small glitch in the fadeout handling |
|
.
|