IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Lecteur de radio web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Par défaut Lecteur de radio web
    Bonsoir,

    Petite brève:
    Je fais un petit retour dans le code C++. Mes derniers codages remontent... oulà, loin ! Soyez donc prévenus de mes questions idiotes

    Ce que j'ai essayé de faire:
    Actuellement, je me fais une petite application pour écouter les streaming radio que je trouve sur le web. Je sait que je reviens sur du compliqué, mais il faut bien commencer par un truc ! Voyons ça de plus prêt.

    Pour le moment, je n'ai pas codé d'interface (elle viendra plus tard). Assez rapidement dès que ça va fonctionner.

    J'essaie d'accéder à un lien webradio, bien sûr complet, et de l'écouter. J'ai donc codé une gui de base vide. Le but est de faire cela plus tard.

    J'ai pu compiler, QMediaPlaylist et QMediaPlayer étant mes amis. Sauf que je tombe sur une belle erreur.

    Voyons le codage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    //Le .h
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
     
    #include <QMainWindow>
     
    namespace Ui {
    class MainWindow;
    }
     
    class QMediaPlaylist;
    class QMediaPlayer;
     
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
     
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
     
    private:
        Ui::MainWindow *ui;
        QMediaPlaylist *playList;
        QMediaPlayer *player;
    };
     
    #endif // MAINWINDOW_H
     
     
    //Le .cpp
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
     
    #include <QtMultimedia/QMediaPlaylist>
    #include <QtMultimedia/QMediaPlayer>
     
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        playList = new QMediaPlaylist(this);
        playList->addMedia(QUrl("http://cache.yacast.fr/V4/rmc/rmc.m3u"));
        playList->setCurrentIndex(1);
     
        player = new QMediaPlayer(this);
        player->setPlaylist(playList);
        player->play();
     
    }
     
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    Niveau erreur:
    Starting C:\Users\PC-Travail\Documents\Qt\build-RadioOnlineWeb-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug\RadioOnlineWeb.exe...
    C:\Users\PC-Travail\Documents\Qt\build-RadioOnlineWeb-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug\RadioOnlineWeb.exe exited with code 0

    Starting C:\Users\PC-Travail\Documents\Qt\build-RadioOnlineWeb-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug\RadioOnlineWeb.exe...
    DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x800c0005 ()
    C:\Users\PC-Travail\Documents\Qt\build-RadioOnlineWeb-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug\RadioOnlineWeb.exe exited with code 0
    Si je comprends bien ce qui se passe :
    Je crée ma liste, pour le moment, un seul lien.
    Je vais lancer le player avec le contenu de cette liste
    Et bam le directShow plante. Mais j'aimerais la confirmation.

    Eventuellement, est-ce qu'il existe un paliatif ? un remède ?

    Merci

  2. #2
    Membre éclairé Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Par défaut
    Winjérome a trouvé la solution. C'est donc bien bon niveau code. Et ça fonctionne même !

    Par contre les liens que j'avais étaient incorrects.

    Sait-on faire apparaître une fenêtre de dialogue pour dire que le flux n'est pas bon ?

    Je peux désormais continuer ce tread avec la partie interface graphique et les contrôles.

  3. #3
    Membre éclairé Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Par défaut Etat de chargement du stream
    Bonjour,

    J'avance lentement sur mon projet. Je remarque un souci. J'essaie de chargé une progressBar avec l'état du streaming. Ma première idée à été d'utiliser les signeaux et les slots. Hélas, l'émission ne se fait pas depuis Player.

    Deux possibilités:
    - Soit Player n'a rien à voir avec le chargement
    - Soit j'ai utilisé le mauvais outil

    Dans tous les cas, j'aimerais voir un état du chargement lorsque on choisi de lancer le stream, donc l'URL de la web radio.

    Petit tour sur le code : c'est par ici

    Merci pour votre aide

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2017
    Messages : 18
    Par défaut
    J'ai du mal à comprendre si tu veux l'état de la bufferisation ou du téléchargement ?
    Pour le buffer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    connect(player, SIGNAL(bufferStatusChanged(int)), this, SLOT(bufferingProgress(int)));
     
    void Player::bufferingProgress(int progress)
    {
        setStatusInfo(tr("Buffering %4%").arg(progress));
    }
    pour l'autre, un QFileInfo sur le fichier temporaire ?
    Si tu veux un signal slot, tu peux surveiller le fichier ?
    voir utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connect(player, SIGNAL(bufferStatusChanged(int)), this, SLOT(bufferingProgress(int)));

  5. #5
    Membre éclairé Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Par défaut
    Ok, je n'étais pas loin de cette solution le dernier coup.

    Pas de bug mais ça ne fonctionne pas. J'ai pas de remonté d'infos.

    J'ai mis à jour le GIT

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2017
    Messages : 18
    Par défaut
    Cela fait quoi si le connect est avant le play(); ?
    Tu entends quelque chose ?
    Sinon, je me base sur l'example de Qt et en particulier le player :
    https://doc.qt.io/qt-5/qtmultimedia-...r-example.html


    L'index ne commence pas à 0 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    playList->setCurrentIndex(1);
    Je viens de compiler et sur MacOs et j'ai une erreur.
    Mon parefeux certainement.

    2017-06-10 20:33:09.695 StreamRadioWeb[6253:661745] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

    J'ai trouvé une solution, mais cela ne marche toujours pas.
    Je vais relire la doc.

Discussions similaires

  1. Quel langage pour lecteur audio/video web ?
    Par Dayren dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 26/06/2007, 10h45
  2. Créer une Radio Web
    Par Jimmy_S dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 11/08/2006, 01h50
  3. Programmation Radio Web
    Par Shadiest dans le forum C++
    Réponses: 9
    Dernier message: 01/05/2006, 14h49
  4. [Real Media] Intégrer le lecteur à une page web
    Par El Jaguar dans le forum Autres langages pour le Web
    Réponses: 7
    Dernier message: 12/08/2005, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo