Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Player MP3 dans un thread

3 réponses
Avatar
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
?

3 réponses

Avatar
Michel
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)
Avatar
Remi THOMAS
"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
Avatar
ByB
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.