Valider 76688c27 rédigé par Thorfin89's avatar Thorfin89
Parcourir les fichiers

Ajout soluce info titre

parent a2964d88
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+7 −1
Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -27,3 +27,9 @@ France Bleu Armorique,FR,Régionale,http://direct.francebleu.fr/live/fbarmorique
RTL,FR,Généraliste,http://icecast.rtl.fr/rtl-1-44-128,rtl.png
RTL,FR,Généraliste,http://icecast.rtl.fr/rtl-1-44-128,rtl.png
Europe 1,FR,Généraliste,http://stream.europe1.fr/europe1.mp3,europe-1.png
Europe 1,FR,Généraliste,http://stream.europe1.fr/europe1.mp3,europe-1.png
Nostalgie,FR,Divers,http://scdn.nrjaudio.fm/adwz2/fr/30601/mp3_128.mp3,nostalgie.png
Nostalgie,FR,Divers,http://scdn.nrjaudio.fm/adwz2/fr/30601/mp3_128.mp3,nostalgie.png
Celtic Music Radio,GB-SCT,Celtic,https://uksoutha.streaming.broadcast.radio/celtic,CelticMusicRadio.png
Smooth Scotland,GB-SCT,Celtic,https://media-ice.musicradio.com/SmoothScotlandMP3,SmoothScotland.png
Expat Radio Scotland,GB-SCT,Oldies,https://everestcast.shoutcastservices.com:1355/stream,ExpatRadioScotland.png
Linn Jazz,GB,Jazz,http://radio.linn.co.uk:8000/autodj,LinnJazz.png
Pure Radio Scotland,GB-SCT,Scotland,https://listen-pureradio.sharp-stream.com/pure_radio.mp3?Device=LivePlayer&_=532281&awparams=companionAds%3Atrue&listenerid=8196d2c78a734f244852a3f8bbbecbcb,PureRadioScotland.png
Irish Pub Radio,IR,Irish,http://solid24.streamupsolutions.com:8026/stream,IrishPubRadio.png
+67 −34
Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -100,46 +100,79 @@ Il est également possible de passer des arguments à la fonction directement en


### Affichage des informations sur la radio en cours d'écoute :
### Affichage des informations sur la radio en cours d'écoute :


Source :
- https://github.com/oaubert/python-vlc/issues/72
- https://github.com/oaubert/python-vlc/issues/72


```python
```python
from time import sleep
from time import sleep
from vlc import EventType, Media, MediaPlayer, MediaParseFlag, Meta
from vlc import EventType, Media, MediaPlayer, MediaParseFlag, Meta


def _media_cb(event, *unused):
player = MediaPlayer()
    # XXX callback ... never called
radio_flux = Media("http://live.leanstream.co/CJOTFM-MP3")  # on définit le flux
    print(event)
player.set_media(radio_flux)  # on charge le flux

player.play()  # on lance l'écoute de la radio
p = MediaPlayer()

# cmd1 = "sout=file/ts:%s" % outfile
info_flux = player.event_manager()  # on récupère l'information du flux
#media = Media("http://live.leanstream.co/CJOTFM-MP3")  # , cmd1)

media = Media("http://scdn.nrjaudio.fm/adwz2/fr/30601/mp3_128.mp3?origine=fluxradios")
# définition des types d'infos à afficher
# media.get_mrl()
infos_selected = {  # Meta.Album: None,
p.set_media(media)
    # Meta.AlbumArtist: None,
p.play()
    # Meta.Artist: None,

    # Meta.Title: None,

    # Meta.Genre: None,
e = p.event_manager()
    # Meta.URL: None,
e.event_attach(EventType.MediaMetaChanged, _media_cb, media)
    Meta.NowPlaying: None
e.event_attach(EventType.MediaParsedChanged, _media_cb, media)
}


# define the meta data to show
while True:  # boucle principale
meta = {Meta.Album: None,

        Meta.Genre: None,
    # using MediaParseFlag.local is not any different
        Meta.NowPlaying: None}
    radio_flux.parse_with_options(MediaParseFlag.network, 2)  # 2 sec timeout



    # analyse des infos avec saut systématique si info nulle ou inchangée
while True:  # loop forever
    for type_d_info in infos_selected.keys():  # pour chaque type d'info
    # XXX using MediaParseFlag.local is not any different
        info = radio_flux.get_meta(type_d_info)  # on récupère l'info
    media.parse_with_options(MediaParseFlag.network, 2)  # 2 sec timeout

    # XXX media.get_parsed_status() always returns .skipped
        if info != infos_selected[type_d_info]:  # si l'info est différente de 'None'
    for k in meta.keys():
            print(info[4:len(info)-3])     # affiche de l'info 'nettoyée'
        v = media.get_meta(k)

        if v != meta[k]:
            # mémorisation de l'info
            # print("{} - {}".format(k, v))
            infos_selected[type_d_info] = info
            print("{}".format(v))
            '''
            meta[k] = v
            on charge l'info dans la clé correspondante de
    sleep(2)
            infos_selected[type_d_info]
            l'info ne sera pas différente au prochain passage
            => la fonction print n'est plus traitée
            jusqu'à  ce que l'info change (changement de morceau)
            '''

    sleep(2)  # on relance le test toutes 2 secondes

```

### Affichage du titre écouté (vesion simplifiée de la précédente)

```python
from time import sleep
from vlc import Media, MediaPlayer, Meta

player = MediaPlayer()
radio_flux = Media("http://live.leanstream.co/CJOTFM-MP3")  # on définit le flux
player.set_media(radio_flux)  # on charge le flux
player.play()  # on lance l'écoute de la radio

info_flux = player.event_manager()  # on récupère l'information du flux

memo_info = ""  # pour mémoriser le titre

while True:  # boucle principale

    flux_info = radio_flux.get_meta(Meta.NowPlaying)  # on récupère l'info sur le titre actuel
    if flux_info and flux_info != memo_info:    # si le titre donné et est différent de celui mémorisé
        print(flux_info[3:len(flux_info) - 2])  # on 'nettoie' le titre
        memo_info = flux_info  # on mémorise le titre

    sleep(2)  # on relance le test toutes 2 secondes
```
```


### Problème de chemin courant
### Problème de chemin courant
+41,4 ko
Chargement de la diff d'image…
+45,6 ko
Chargement de la diff d'image…
+51,5 ko
Chargement de la diff d'image…
Chargement en cours