Bibliothèque sound - se déplacer dans un fichier son

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Bibliothèque sound - se déplacer dans un fichier son

Message par Ar-S »

J'essaye tant bien que mal de me déplacer dans un fichier son via (Get/)SetSoundPosition() (Pause/)ResumeSound()
Que ce soit en wav ou en ogg, ça ne fonctionne pas.
Une idée ?

code corrigé pour sons courts

Code : Tout sélectionner

InitSound() 
LoadSound(0,"sample.wav") ; chargez votre son
sd = SoundLength(0, #PB_Sound_Millisecond) ; La durée en ms du morceau (fait +20000)
c=0

PlaySound(0)

Repeat
sp = GetSoundPosition(0,#PB_Sound_Millisecond)
Debug Str(sp) + " / " + Str (sd)

; ici j'ai mis Pause/resume mais avec Stop/play ça marche pas mieux.
If sp > 15000 ; si la position dépasse 15 sec 
	SetSoundPosition(0,5000,#PB_Sound_Millisecond) ; on se place à 5 sec
	c+1
	Debug "je reparts à 5 sec"
EndIf

Until c = 2
FreeSound(0)
End
Dernière modification par Ar-S le lun. 07/juil./2014 22:05, modifié 3 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Bibliothèque sound - se déplacer dans un fichier son

Message par falsam »

Bonjour Ar-S

Petite erreur ici PlaySound(0,100) le 2eme paramètre est un flag et non un volume (la fonction est mal foutu)

et là ResumeSound(0,100) le 2eme paramètre est un numéro de canal et non un volume.

Code corrigé en conséquence

Code : Tout sélectionner

; durée en ms
InitSound() 
LoadSound(0,"sample.wav") ; chargez votre son
sd = SoundLength(0, #PB_Sound_Millisecond) ; La durée en ms du morceau (fait +20000)
c=0

PlaySound(0)

Repeat
sp = GetSoundPosition(0,1)
Debug Str(sp) + " / " + Str (sd)

; ici j'ai mis Pause/resume mais avec Stop/play ça marche pas mieux.
If sp > 15000 ; si la position dépasse 15 sec 
   PauseSound(0) ; on fait pause
   SetSoundPosition(0,5000,#PB_Sound_Millisecond) ; on se place à 5 sec
   ResumeSound(0) ; on relance
   c+1
   Debug "je reparts à 5 sec"
EndIf

Until c = 2
FreeSound(0)
End
Gére plutôt le volume avec SoundVolume()
Configuration : Windows 11 Famille 64-bit - PB 6.20 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
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Bibliothèque sound - se déplacer dans un fichier son

Message par SPH »

Pendant que je vous ai sous la main, existe t'il une instruction qui indique quel est le volume a un instant T ? (pour faire un equaliseur graphique)

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Bibliothèque sound - se déplacer dans un fichier son

Message par TazNormand »

@ SPH : PB est un peu "pauvre" concernant le son, tournes-toi vers la librairie BASS, mais je crois que le "wrapper" n'est plus trop à jour
Image
Image
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Bibliothèque sound - se déplacer dans un fichier son

Message par Ar-S »

@Taz pour SPH Fmod fait parfaitement l'affaire (on a déjà vu la chose avec les radios)
Pour ma part c'est pour le purepunch du coup me fallait du natif ^^
Merci Falsam, j'ai pourtant essayé 1001 fois.. Il manque des infos de débogage pour cette lib sound. Entre les flag et les modes optionnels c'est vrai qu'elle est bancale. Mais ça marche, je vais pouvoir corriger mon (vrai) code.
Merci. (Me reste encore un gros soucis de lag avec le curseur souris et l'openwindowsscreen mais c'est une autre histoire ^^)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [OK]Bibliothèque sound - se déplacer dans un fichier son

Message par Ar-S »

Au final j'ai corrigé le code au 1er post. Notez que le Pause / Resume n'étaient pas nécessaires.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Bibliothèque sound - se déplacer dans un fichier son

Message par Ar-S »

Hum je me demandais pourquoi ça ne marchait pas sur mon code, en fait je pense que ça vient de la taille du morceau.

Pouvez vous essayer ça avec un morceau à vous de plus d'une minute trente.

Lorsqu'on est à 9.5 sec, le morceau devrait sauter à 70000 hors il est repart à ~22000 chez moi.
Bug ? Limite du proce ? Mon code c'est d'la merde ? :mrgreen:

Note : Fermez au deboggeur le c ne sera jamais = 2 dans cette mouture

Code : Tout sélectionner

UseOGGSoundDecoder()
InitSound() 
LoadSound(0,"chips.ogg") ; chargez votre son
sd = SoundLength(0, #PB_Sound_Millisecond) ; La durée en ms du morceau (fait +20000)
Debug sd
c=0

PlaySound(0)

Repeat
sp = GetSoundPosition(0,#PB_Sound_Millisecond)
Debug Str(sp) + " / " + Str (sd)


If sp > 9500 And noloop = 0 ; si la position dépasse 9.5 sec 
	SetSoundPosition(0,70000,#PB_Sound_Millisecond) ; on se place vers la fin
	c+1
	noloop = 1
EndIf

Until c = 2 ; fermez au deboggeur
FreeSound(0)
End
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Bibliothèque sound - se déplacer dans un fichier son

Message par falsam »

Ar-S a écrit :Bug ? Limite du proce ? Mon code c'est d'la merde ? :mrgreen:
C'est un bug de la version 5.21 et à priori 5.22 qui était signalé sur le forum anglais en début d'année.

http://www.purebasic.fr/english/viewtop ... ndPosition

:idea: Fonctionne par contre avec la version 5.30 :)

PS : Ton repeat est infini : c n'est jamais égale à 2. Mais bon .... c'est un détail :mrgreen:
Configuration : Windows 11 Famille 64-bit - PB 6.20 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
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Bibliothèque sound - se déplacer dans un fichier son

Message par Ar-S »

Le c <> 2 je le précise (fermez au deboggeur) c'était pour l'exemple.
Du coup c'est vraiment la misère ! ça fout mon purepunch à la flotte ! Si c'est corrigé pour la 5.30 ce serait bien de mettre à jour la 5.22 rapidement !
Je l'ai souligné sur le lien que tu as donné. ça fait flic.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Bibliothèque sound - se déplacer dans un fichier son

Message par falsam »

Fred a écrit :Please check the release date of 5.22
J'ai vérifié avec la version 5.22 : Le souci est le même.
Configuration : Windows 11 Famille 64-bit - PB 6.20 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
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Bibliothèque sound - se déplacer dans un fichier son

Message par Ar-S »

Bon j'ai cru comprendre que Fred avait corrigé le prob mais pas encore mis en ligne.. Si j'ai bien compris.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre