Jouer flux webradio avec SpiderBasic app android

Rubriques generale concernant SpiderBasic
hub73
Messages : 126
Inscription : sam. 16/janv./2021 20:17

Jouer flux webradio avec SpiderBasic app android

Message par hub73 »

Bonjour à tous.

- Je voudrais créer une app android pour écouter le flux direct de notre webradio. (le site https://lesfloralies.info/)
- Je souhaiterai également afficher par exemple notre site dans un webview de cette application.
- Comme tous nos programmes de gestion, réalisation et diffusion de la webradio sont écrits en purebasic, ce serait intéressant que j'utilise également SpiderBasic.

Le lien sur le flux de la webradio est : https://www.lesfloralies.ovh/floralies.ogg

Est-ce possible avec SpiderBasic ? Si vous aviez une ligne de code ou des pistes pour lire le flux direct pourriez vous me l'indiquer, que je puisse tester dans la version libre de SpiderBasic avant de l'acheter.

Dans les programmes purebasic pour la webradio nous utilisons la librairie BASS (https://un4seen.com/) je ne sais pas s'il y aurait un moyen de l'utiliser également avec SpiderBasic.

Merci à vous.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Jouer flux webradio avec SpiderBasic app android

Message par falsam »

Ecouter le flux sans intervention de l'utilisateur ?
Bouton Stop et Start ?
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Jouer flux webradio avec SpiderBasic app android

Message par falsam »

Dans un premier temps, pourrais tu essayer ce code. Tu crées l'application Web et tu transfères le résultat sur ton site. En local ca ne pourra pas fonctionner.

Code : Tout sélectionner

InitSound()

Procedure Loading(Type, Filename$, ObjectId)
  Debug Filename$ + " loaded (id = " + ObjectId + ")"
  
  PlaySound(0)
EndProcedure

Procedure LoadingError(Type, Filename$)
  Debug Filename$ + ": loading error"
EndProcedure

; Evenement lié au son
BindEvent(#PB_Event_Loading, @Loading())
BindEvent(#PB_Event_LoadingError, @LoadingError())

LoadSound(0, "https://www.lesfloralies.ovh/floralies.ogg")
il faudra peut être remplacer https://www.lesfloralies.ovh/floralies.ogg par la localisation physique de ton son.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
hub73
Messages : 126
Inscription : sam. 16/janv./2021 20:17

Re: Jouer flux webradio avec SpiderBasic app android

Message par hub73 »

Tu crées l'application Web et tu transfères le résultat sur ton site
falsam peux tu m"expliquer un peu plus comment faire cela. Qu'appelles tu application web. Quels fichiers dois-je transférer ensuite. Merci.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Jouer flux webradio avec SpiderBasic app android

Message par falsam »

■ Créer une application web
viewtopic.php?f=24&t=16979

On transfert au minimum chez l'hébergeur, le fichier html + le script Javascript + le dossier spiderbasic qui sera généré par le transpiler et qui contiendra le framework SpiderBasic.

■ Créer une apk android
viewtopic.php?f=24&t=16973

:arrow: Commence par l'application web. Si ça fonctionne, alors ça fonctionnera aussi sous Android.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
hub73
Messages : 126
Inscription : sam. 16/janv./2021 20:17

Re: Jouer flux webradio avec SpiderBasic app android

Message par hub73 »

Bonjour.
J'ai testé : https://lesfloralies.info/spiderbasic/index.html

mais cela ne fonctionne pas, je n'ai pas le son de la webradio.
avec purebasic un loadsound avec l'url de la webradio n'a jamais fonctionné, j'ai du utiliser FMOD ou BASS pour lire le flux. Je me demande ce qu'il est possible de faire avec SpiderBasic pour ajouter cette possibilité ? Le javascript de la page de mon site est le suivant : (PHP et Javascript) et fonctionne même pour ipod, ipad et ... (Chrome, safari, ...) Deux flux sont en fait diffusés un en .ogg et l'autre en .mp3

Code : Tout sélectionner

	function AfficherBoutonJouerPause()
	{

        $donnees = "<div class='inner-div'>" ."\n";

		$donnees .= "<script>" ."\n";

		$donnees .= "

		function playPause() {
		  const audio = document.getElementById('monAudio');
		  if (audio.paused) {
		    audio.play();
		    MonImagePlaypause.src = 'https://www.lesfloralies.info/programme/bouton_pause.png';
		  } else {
		    audio.pause();
		    //changer image tonImagePlaypause en 'play'
		    MonImagePlaypause.src = 'https://www.lesfloralies.info/programme/bouton_play.png';
		  }
		}
		MonImagePlaypause.addEventListener('click', playPause);

	  ";

		$donnees .= "</script>" ."\n";

		$donnees .= "<p align='center'>" ."\n";

        if (!is_mobile())
        {
    		$donnees .= "<img src='https://www.lesfloralies.info/programme/bouton_play.png' id='MonImagePlaypause' onclick='playPause();'/>" ."\n";
        }
        else
        {
	    	$donnees .= "<img src='https://www.lesfloralies.info/programme/bouton_play.png' width='400' id='MonImagePlaypause' onclick='playPause();'/>" ."\n";
        }
        $donnees .= "</p>";

   	$donnees .= "<div id='webradio_encours'></div>" ."\n";

		$donnees .= "<div class='audioplayer'>" ."\n";
		$donnees .= "<p align='center'>" ."\n";

		$donnees .= "<audio id='monAudio' controls='controls' preload='metadata' hidden=''>" ."\n";

        	$donnees .= "<source src='https://www.lesfloralies.ovh/floralies.ogg' type='audio/ogg'>" ."\n";
        	$donnees .= "<source src='https://www.lesfloralies.ovh/floralies.mp3' type='audio/mpeg'>" ."\n";

		$donnees .= "</audio>" ."\n";
		$donnees .= "</p>" ."\n";
		$donnees .= "</div>" ."\n";

		$donnees .= "</div>" ."\n";

		$donnees = utf8_encode ($donnees);
		echo $donnees;

	}
J'avais réalisé une appli qui fonctionnait avec B4A (qui fonctionne encore avec l'url de la webradio). Je voulais utiliser SpiderBasic pour garder de la cohérence dans mon projet et m"eviter de passer à un autre langage.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Jouer flux webradio avec SpiderBasic app android

Message par falsam »

hub73 a écrit : lun. 27/févr./2023 7:48 avec purebasic un loadsound avec l'url de la webradio n'a jamais fonctionné,
Je testerais.

:arrow: En attendant voici un code 100% Spiderbasic qui lit cette url
https://falsam.com/webradio/fluid.ogg

:arrow: Démonstration en cliquant sur ce lien
https://falsam.com/webradio/
C'est moche hein ? mais ça fonctionne. Clique sur le bouton Play et Stop

Testé avec Chrome, Edge et FireFox

Code : Tout sélectionner

Enumeration window
  #mf
  #mfPlay
  #mfStop
  #sound
EndEnumeration

InitSound()

Procedure Play()
  PlaySound(#sound)  
EndProcedure

Procedure Stop()
  StopSound(#sound)
EndProcedure

; Fenetre de l'application 
Procedure Start()
  OpenWindow(#mf, 0, 0, 0, 0, "", #PB_Window_Background)  
  ButtonGadget(#mfPlay, 10, 10, 80, 24, "Play")
  ButtonGadget(#mfStop, 10, 40, 80, 24, "Stop")
  
  BindEvent(#PB_Event_Gadget, @Play(), #mf, #mfPlay)
  BindEvent(#PB_Event_Gadget, @Stop(), #mf, #mfStop)
EndProcedure

; Le chargement du son est terminée
Procedure Loading(Type, Filename$, ObjectId)
  Debug "Le son " + Filename$ + " est chargé"
  Debug "L'application va se charger. Cliquez sur le bouton play"
  Start()
EndProcedure

; En cas d'erreur
Procedure LoadingError(Type, Filename$)
  Debug Filename$ + ": Erreur de chargement du flux audio."
EndProcedure

; Evenement lié au son
BindEvent(#PB_Event_Loading, @Loading())
BindEvent(#PB_Event_LoadingError, @LoadingError())

; Chargement du son
LoadSound(#sound, "https://falsam.com/webradio/fluid.ogg")
Bien évidement ce code ne fonctionnera pas en local car le résultat de transpilation et l'url doivent se trouver sur le même hébergement.

Bonne méditation :wink:
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Jouer flux webradio avec SpiderBasic app android

Message par falsam »

J'ai généré l'apk (Mode portrait) avec SpiderBasic de ma sublime webradio :mrgreen: :mrgreen:

■ Disponible sur ce lien
https://falsam.com/webradio/webradio.apk

Cet apk étant non signé et ne figurant pas sur le store de Google, il y aura surement des messages d'alertes d'Android.

J'ai laissé le debug pour voir l'avancement du download.

Enjoy :wink:
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
hub73
Messages : 126
Inscription : sam. 16/janv./2021 20:17

Re: Jouer flux webradio avec SpiderBasic app android

Message par hub73 »

falsam si j'utilise ton lien je peux écouter ta webradio depuis mon navigateur chrome.

Si je colle ton code et que je le compile et l'envoi sur mon serveur cela ne fonctionne pas : https://lesfloralies.info/spiderbasic/index.html

Donc pourrais tu essayer avec le flux de ma webradio sur ton site ?

C'est peut être une limitation de la version démo de Spiderbasic ?

J'ai essayé depuis mon smartphone ton apk qui fonctionne sur ta webradio.

C'est une webradio, pas uniquement un fichier .ogg stocké dans un répertoire de ton site ?

Je constate tout de même que le chargement est un peu long au démarrage dans tous les cas pour entendre le son. Peut être le temps de mettre tout çà dans un tampon avant de lire.

Merci.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Jouer flux webradio avec SpiderBasic app android

Message par falsam »

Il ne se passe rien et c'est normal. Tu essayes de jouer mon flux depuis ton hébergement. Ce n'est pas possible.

le flux et les fichiers html et javascript pour des raisons de sécurités doivent avoir la même origine.

Passes en mode console sur ton navigateur et regarde ce message qui te résume ce que je viens de dire.
Access to XMLHttpRequest at 'https://falsam.com/webradio/fluid.ogg' from origin 'https://lesfloralies.info' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
hub73
Messages : 126
Inscription : sam. 16/janv./2021 20:17

Re: Jouer flux webradio avec SpiderBasic app android

Message par hub73 »

ok. falsam peux-tu essayer de lire mon flux depuis ton site pour voir si le soucis viens de là. Merci.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Jouer flux webradio avec SpiderBasic app android

Message par falsam »

hub73 a écrit : lun. 27/févr./2023 12:50 ok. falsam peux-tu essayer de lire mon flux depuis ton site pour voir si le soucis viens de là. Merci.
Pour les mêmes raisons ca ne fonctionnera pas.

https://lesfloralies.ovh/floralies.ogg est hébergé chez toi et mes fichier html et javascript seront hébergés sur mon site.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
hub73
Messages : 126
Inscription : sam. 16/janv./2021 20:17

Re: Jouer flux webradio avec SpiderBasic app android

Message par hub73 »

Dans ma console j'ai çà quand je teste :

Code : Tout sélectionner

paper-full.min.js:32 Canvas2D: Multiple readback operations using getImageData are faster with the willReadFrequently attribute set to true. See: https://html.spec.whatwg.org/multipage/canvas.html#concept-canvas-will-read-frequently
(anonyme) @ paper-full.min.js:32
soundjs.min.js:18 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu
b._generateCapabilities @ soundjs.min.js:18
DevTools failed to load source map: Impossible de charger le contenu de https://lesfloralies.info/spiderbasic/SpiderBasic/dojo/dojo.js.map : Erreur HTTP : code d'état 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Impossible de charger le contenu de https://lesfloralies.info/spiderbasic/SpiderBasic/interact.min.js.map : Erreur HTTP : code d'état 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Impossible de charger le contenu de https://lesfloralies.info/spiderbasic/SpiderBasic/dojo/nls/dojo_fr-fr.js.map : Erreur HTTP : code d'état 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
https://lesfloralies.ovh/floralies.ogg c'est le flux du serveur icecast.
mon site est
https://lesfloralies.info sur lequel j'ai le dossier Spiderbasic
donc moi aussi ce n'est pas le même site. Ensuite les deux noms de domaine son hébergé tous les deux chez ovh au meme endroit.
hub73
Messages : 126
Inscription : sam. 16/janv./2021 20:17

Re: Jouer flux webradio avec SpiderBasic app android

Message par hub73 »

du coup cela devrait marcher depuis l'apk ? elle est liée à aucun nom de domaine l'apk ?

ensuite si tu as placé un fichier ogg dans un dossier que tu lis, ce n'est pas la même chose qu'un flux de webradio diffusé en ogg par un serveur icecast ?
hub73
Messages : 126
Inscription : sam. 16/janv./2021 20:17

Re: Jouer flux webradio avec SpiderBasic app android

Message par hub73 »

J'ai reçu de l'aide sur le forum anglais de spiderbasic et cette méthode est top :

https://lesfloralies.info/spiderbasic/

Le sujet sur le forum anglais :
https://forums.spiderbasic.com/viewtopic.php?t=2355
Répondre