Player MP3 dans un thread

Le
ByB
Bonjour,

Je développe une application en C++/MFC avec VC6 qui comprend un petit
player MP3. Pour éviter les problèmes, j'ai créé une fonction de
lecture que je lance avec un thread (CWinThread). Or j'observe que de
temps en temps, la musique s'interrompt (apparemment parce que Windows
récupère "la main" pour ses propres threads, ou ceux des autres
applications). Le son ensuite est "haché" car apparemment Windows
n'attribue que peu de temps à mon thread à chaque fois La seule
solution pour que la musique reprenne, c'est de cliquer une fois sur la
fenêtre de mon application Mais au bout de quelques secondes, le
problème reprend.

Existe t-il un moyen de paramétrer un thread contenant un lecteur MP3
pour que la musique soit audible et jouée en continu, malgré la gestion
de threads de Windows ?

Pour info, j'ai paramétré mon thread avec la priorité
THREAD_PRIORITY_IDLE
mais même avec d'autres valeurs (THREAD_PRIORITY_BELOW_NORMAL ou
THREAD_PRIORITY_ABOVE_NORMAL) le problème reste à peu près similaire


Merci de vos conseils.

--
Pourquoi le jus de citron est fait de saveurs artificielles et le
liquide vaisselle se vante d'être composé entre autres de vrais citrons
?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel
Le #16373281
ByB wrote:
Bonjour,

Je développe une application en C++/MFC avec VC6 qui comprend un petit
player MP3. Pour éviter les problèmes, j'ai créé une fonction de lecture
que je lance avec un thread (CWinThread). Or j'observe que de temps en
temps, la musique s'interrompt (apparemment parce que Windows récupère
"la main" pour ses propres threads, ou ceux des autres applications).
Le son ensuite est "haché" car apparemment Windows n'attribue que peu de
temps à mon thread à chaque fois ... La seule solution pour que la
musique reprenne, c'est de cliquer une fois sur la fenêtre de mon
application ... Mais au bout de quelques secondes, le problème reprend.



Il n'y a pas besoin de thread pour jouer un mp3 (windows en crée
lui-même) avec mci ou autres méthodes, la musique n'est jamais
interrompue (à part si un autre process prend 99% du cpu bien sûr)
Remi THOMAS
Le #16373691
"ByB" écrivit
Bonjour,

Je développe une application en C++/MFC avec VC6 qui comprend un petit
player MP3. Pour éviter les problèmes, j'ai créé une fonction de lecture
que je lance avec un thread (CWinThread). Or j'observe que de temps en
temps, la musique s'interrompt (apparemment parce que Windows récupère "la
main" pour ses propres threads, ou ceux des autres applications). Le son
ensuite est "haché" car apparemment Windows n'attribue que peu de temps à
mon thread à chaque fois ... La seule solution pour que la musique
reprenne, c'est de cliquer une fois sur la fenêtre de mon application ...
Mais au bout de quelques secondes, le problème reprend.

Existe t-il un moyen de paramétrer un thread contenant un lecteur MP3 pour
que la musique soit audible et jouée en continu, malgré la gestion de
threads de Windows ?

Pour info, j'ai paramétré mon thread avec la priorité THREAD_PRIORITY_IDLE
mais même avec d'autres valeurs (THREAD_PRIORITY_BELOW_NORMAL ou
THREAD_PRIORITY_ABOVE_NORMAL) le problème reste à peu près similaire ...

Merci de vos conseils.




Bonjour,

Il suffit de plus remplir le buffer de la carte son.
Tu peux aussi utiliser Windows Media Player comme ActiveX invisible, il fait
cela très bien.

Rémi
ByB
Le #16374481
J'ai envie de hurler à la face du monde que Michel a affirmé le
20/07/2008 que
ByB wrote:
Bonjour,

Je développe une application en C++/MFC avec VC6 qui comprend un petit
player MP3. Pour éviter les problèmes, j'ai créé une fonction de lecture
que je lance avec un thread (CWinThread). Or j'observe que de temps en
temps, la musique s'interrompt (apparemment parce que Windows récupère "la
main" pour ses propres threads, ou ceux des autres applications). Le son
ensuite est "haché" car apparemment Windows n'attribue que peu de temps à
mon thread à chaque fois ... La seule solution pour que la musique
reprenne, c'est de cliquer une fois sur la fenêtre de mon application ...
Mais au bout de quelques secondes, le problème reprend.





Il n'y a pas besoin de thread pour jouer un mp3 (windows en crée lui-même)
avec mci ou autres méthodes, la musique n'est jamais interrompue (à part si
un autre process prend 99% du cpu bien sûr)



Merci, effectivement, ça marche nettement mieux sans thread ! :-)))

--
C'est facile. C'est complètement automatique. Il suffit de cliquer. Il
existe un outil qui fait ça.
Publicité
Poster une réponse
Anonyme