Forum de la communauté SFML

Aide => Audio => Discussion démarrée par: DragonRock le Juin 28, 2017, 03:21:12 pm

Titre: [ABANDONNÉ] Impossible de reprendre la lecture après un pause
Posté par: DragonRock le Juin 28, 2017, 03:21:12 pm
Bonjour,

tout d'abord, merci pour la SFML, qui est selon moi une des meilleures librairies multimedia en C++.

En ce moment, j'essaie de faire un petit lecture de musique en Rust, et j'utilise Rust-SFML qui est lui-même basé sur CSFML qui est lui-même basé sur SFML. Pour faire face à un bug, je suis revenu en C++, et je rencontre le problème suivant : après avoir mis en pause une musique, impossible de reprendre la lecture. getStatus me renvoie sf::Sound::Playing, mais plus aucun son dans mes écouteurs.

J'ai l'impression que ça pourrait être quelque chose de stupide, mais je n'arrive pas à détecter quoi.

#include <iostream>
#include <chrono>
#include <thread>
#include <cassert>
#include <SFML/Audio/Music.hpp>
#include <SFML/Audio/Sound.hpp>

int main(int argc, char *argv[])
{
    sf::Music music;
    if (!music.openFromFile("resources/orchestral.ogg")) {
        return 1;
    }

    music.play();
    assert(music.getStatus() == sf::Sound::Playing);

    std::this_thread::sleep_for(std::chrono::seconds(5));

    music.pause();
    assert(music.getStatus() == sf::Sound::Paused);

    music.play();
    assert(music.getStatus() == sf::Sound::Playing);

    std::this_thread::sleep_for(std::chrono::seconds(10));

    return 0;
}

que je compile avec

g++ -std=c++14 main.cpp -o main -lsfml-audio

Je suis sous ArchLinux, j'ai testé ce code avec gcc 7.1.1 et clang 4.0.1 et j'utilise la SFML 2.4.2.

Vous avez des pistes ?

Merci d'avance !
Titre: Re: Impossible de reprendre la lecture après un pause
Posté par: Laurent le Juin 28, 2017, 03:41:08 pm
Tu devrais poster sur le forum anglais, les développeurs qui s'occupent de l'audio se trouvent là-bas.
Titre: Re: Impossible de reprendre la lecture après un pause
Posté par: DragonRock le Juin 28, 2017, 04:01:19 pm
Merci du conseil, j'y vais de ce pas !

EDIT:
J'ai posé la question sur le forum anglais (https://en.sfml-dev.org/forums/index.php?topic=22174.msg156533) et la conclusion est que ça marche correctement sur windows et sur ubuntu.

Je dois probablement avoir un problème de configuration de ma carte son.

J'ai décidé de résoudre ce problème de façon un peu dégueu en recodant le pause moi même : lors d'un pause, je stoppe la musique, j'enregistre le playing_offset, et au moment de reprendre la lecture, je reprends à partir de zéro, et je change le playing_offset pour revenir là où j'avais pausé.

Merci pour votre aide en tout cas !