SFML Wysyłanie dzwięku.
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

SFML Wysyłanie dzwięku.

AutorWiadomość
Temat założony przez niniejszego użytkownika
SFML Wysyłanie dzwięku.
» 2015-10-19 22:14:04
Witam, staram się przesłać dzwięk za pomocą UDP. Niestety, otrzymany plik zawsze ma rozmiar 0.
Czy ktoś wie dlaczego?

Wysyłanie:
int main (){
    if (!SoundBufferRecorder::isAvailable())
    {

    }
    SoundBufferRecorder recorder;
    recorder.start();
    Sleep(3000);
    recorder.stop();
    const sf::SoundBuffer& buffer = recorder.getBuffer();
    sf::UdpSocket socket;
    sf::IpAddress recipient = "127.0.0.1";
    unsigned short port = 10;
    sf::Packet Wyslane;
    socket.send(&buffer,65506,recipient, port);
    cout<<"Wyslalem"<<endl;
return 0;
}

Odbieranie:
int main (){
    sf::UdpSocket socket;
    socket.bind(10);
    sf::IpAddress sender;
    unsigned short port;
    SoundBufferRecorder recorder;
    const sf::SoundBuffer& buffer = recorder.getBuffer();
    cout<<"Czekam";
    sf::Packet packet;
    socket.receive(packet,sender,port);
    packet << &buffer;
    buffer.saveToFile("test.wav");

    sf::Sound sound;
    sound.setBuffer(buffer);
    sound.play();
    cout<<"Koniec";
return 0;
}
P-138907
» 2015-10-19 22:40:20
1. Wysyłasz pakietem. Odbieraj pakietem. Wysyłasz przez send odbieraj recever.
2. Z pakietu odczytujemy przez >> a nie przez <<
P-138908
Temat założony przez niniejszego użytkownika
» 2015-10-21 15:14:09
Dobrze, poprawiłem.
Jednak wciąż nie działa tak jak powinno.


Wysyłanie:

    SoundBufferRecorder recorder;
    recorder.start();
    Sleep(3000);
    recorder.stop();

    sf::SoundBuffer buffer2 =  recorder.getBuffer();
    buffer2.saveToFile("test2.wav");
//zapisuje to co nagrałem do pliku test2 aby poźniej porównać

    sf::UdpSocket socket;
    sf::IpAddress recipient = "127.0.0.1";
    unsigned short port = 10;
    socket.send(&buffer2,65506,recipient, port);


    cout<<"Wyslalem"<<endl;

Odbieranie:


    sf::UdpSocket socket;
    socket.bind(10);
    sf::IpAddress sender;
    unsigned short port;
   

    sf::SoundBuffer buffer2;
    buffer2.loadFromFile("drzewa.wav");
    //ładuje przykładowy dzwięk

    cout<<"Czekam";

    std::size_t reveived;
    socket.receive(&buffer2, 65506, reveived, sender, port);
    buffer2.saveToFile("test.wav");
    sf::Sound sound;
    sound.setBuffer(buffer2);
    sound.play();
    cout<<"Koniec";


Co ciekawe, odebrany plik "test" ma rozmiar 1KB. Dlaczego?
P-138983
» 2015-10-21 22:53:31
C/C++
sf::Packet packet;

packet.append( bufer.getSamples(), bufer.getSampleCount() );
socket.send( packet, recipient, port );

/**/

socket.recive( packet, recipient, port );

bufer.loadFromSamples( packet.getData(), packet.getDataSize(), 1, 44100 );
P-139009
Temat założony przez niniejszego użytkownika
» 2015-10-22 19:58:05
Wielkie dzięki, zadziałało
P-139055
« 1 »
 Strona 1 z 1