Librarie BASS vers un serveur IceCast
Publié : jeu. 24/févr./2022 10:16
Bonjour à vous.
Toujours dans notre projet de webradio.
Je cherche a envoyer le son de mon programme directement jusqu'à notre serveur Icecast, au passage en intégrant le plugin vst StereoTool.
Je pose des questions sur le forum FMOD de Un4seen (ils ne sont pas familiers avec purebasic) . Et nous sommes parvenus à ceci :
J'ai du son dans mon casque, le vst StereoTool s'ouvre dans une nouvelle fenêtre, la connexion avec le serveur IceCast semble être ok. Mais je n'ai pas de son casté au final. Dans StereoTool, je n'ai pas d'activité.
Il doit me manquer quelquechose au niveau du routage du son...
Si l'un d'entre vous à déja travaillé sur le sujet... ou voit quelquechose de flagrant dans ce code qui m'échappe...
Merci beaucoup.
Toujours dans notre projet de webradio.
Je cherche a envoyer le son de mon programme directement jusqu'à notre serveur Icecast, au passage en intégrant le plugin vst StereoTool.
Je pose des questions sur le forum FMOD de Un4seen (ils ne sont pas familiers avec purebasic) . Et nous sommes parvenus à ceci :
Code : Tout sélectionner
Procedure Son_envoyer_vers_serveur()
Protected HENCODE_encoder
Protected NomServeur.s
Protected MotDePasse.s
Protected Nom.s
Protected Content.s
Protected Url.s
Protected Genre.s
Protected Description.s
Protected Header.s
Protected Commande.s
Protected NomVst.s
Protected Retour
Protected channel
Protected FDSP
Commande = StringToUTF("oggenc -M %d -m %d -r -R 44100 -")
NomServeur = "146.59.233.129:8000/floralies.ogg" ; address:port/mount" (Icecast).
NomServeur = "http://lesfloralies.ovh:8000/floralies.ogg" ; address:port/mount" (Icecast).
MotDePasse = "roucky73"
Nom = "Radio Les Floralies 2"
;Content = ""
Url = "http://www.lesfloralies.info"
Genre = "other"
Description = "Webradio à Castelnaudary France"
Header = ""
; Commande = "oggenc -M %d -m %d -r -R 44100 -"
BASS_RecordInit(gParametres\Dispositif_sonore)
BASS_RecordSetDevice(gParametres\Dispositif_sonore)
Channel = BASS_RecordStart (0, 2, #BASS_RECORD_PAUSE|#BASS_SAMPLE_FLOAT,#Null, #Null)
NomVst = "C:\Users\user\Documents\radio_programmation_purebasic_broadcast\vst_stereo_tool_64.dll"
FDSP = BASS_VST_ChannelSetDSP(Channel, @NomVst, #BASS_Unicode, 0);
; panel sholud To be a second form Or in the Mainform remember the Sterotool Editor is Not small
OpenWindow_vst(0,0)
BASS_VST_EmbedEditor(FDSP, WindowID(Window_vst))
;HENCODE_encoder = BASS_Encode_Start(channel, @Commande, #BASS_ENCODE_NOHEAD | #BASS_ENCODE_AUTOFREE, #Null, 0); // setup the encoder
HENCODE_encoder = BASS_Encode_Start(channel, @Commande, #BASS_ENCODE_NOHEAD, #Null, 0); // setup the encoder
If HENCODE_encoder = 0
MessageRequester ("Erreur","Erreur de l'encodeur OGG Bass : " + BASS_ErrorGetCode())
Else
Ajouter_au_log ("Encodeur OGG Bass fonctionne.", #LOG_DEMARRAGE)
EndIf
;BASS_Encode_CastInit(handle.l, server.p-utf8, pass.p-utf8, content.p-utf8, name.p-utf8, url.p-utf8, genre.p-utf8), desc.p-utf8, headers.p-utf8, bitrate.l, pub.l)
; BASS_Encode_CastInit(HENCODE_encoder, NomServeur$, MotDePasse$, Content$, #BASS_ENCODE_TYPE_OGG, Nom$, "url", "genre", #Null, #Null, 128, #Null) // start the cast
Retour = BASS_Encode_CastInit(HENCODE_encoder, NomServeur, MotDePasse, #BASS_ENCODE_TYPE_OGG, Nom, Url , Genre, Description, Header, 192, 1) ; débute le cast
If Retour = 1
Ajouter_au_log ("Connecté au serveur IceCast.", #LOG_DEMARRAGE)
Else
Select BASS_ErrorGetCode()
Case #BASS_ERROR_BUSY
MessageRequester ("Erreur","Le serveur IceCast est déja occupé !")
Default
MessageRequester ("Erreur","Connection serveur IceCast Erreur : " + BASS_ErrorGetCode())
EndSelect
EndIf
EndProcedure
Il doit me manquer quelquechose au niveau du routage du son...
Si l'un d'entre vous à déja travaillé sur le sujet... ou voit quelquechose de flagrant dans ce code qui m'échappe...
Merci beaucoup.