SFML Wysyłanie dzwięku.
Ostatnio zmodyfikowano 2015-10-22 19:58
Niki-Nick 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; } |
|
1aam2am1 |
» 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 << |
|
Niki-Nick 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? |
|
1aam2am1 |
» 2015-10-21 22:53:31 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 );
|
|
Niki-Nick Temat założony przez niniejszego użytkownika |
» 2015-10-22 19:58:05 Wielkie dzięki, zadziałało |
|
« 1 » |