Root/
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | //////////////////////////////////////////////////////////// // Headers //////////////////////////////////////////////////////////// #include <SFML/Audio.hpp> #include <iomanip> #include <iostream> //////////////////////////////////////////////////////////// /// Play a sound /// //////////////////////////////////////////////////////////// void playSound() { // Load a sound buffer from a wav file sf::SoundBuffer buffer; if (!buffer.loadFromFile( "resources/canary.wav" )) return ; // Display sound informations std::cout << "canary.wav :" << std::endl; std::cout << " " << buffer.getDuration().asSeconds() << " seconds" << std::endl; std::cout << " " << buffer.getSampleRate() << " samples / sec" << std::endl; std::cout << " " << buffer.getChannelCount() << " channels" << std::endl; // Create a sound instance and play it sf::Sound sound(buffer); sound.play(); // Loop while the sound is playing while (sound.getStatus() == sf::Sound::Playing) { // Leave some CPU time for other processes sf::sleep(sf::milliseconds(100)); // Display the playing position std::cout << "\rPlaying... " << std::fixed << std::setprecision(2) << sound.getPlayingOffset().asSeconds() << " sec " ; std::cout << std::flush; } std::cout << std::endl << std::endl; } //////////////////////////////////////////////////////////// /// Play a music /// //////////////////////////////////////////////////////////// void playMusic() { // Load an ogg music file sf::Music music; if (!music.openFromFile( "resources/orchestral.ogg" )) return ; // Display music informations std::cout << "orchestral.ogg :" << std::endl; std::cout << " " << music.getDuration().asSeconds() << " seconds" << std::endl; std::cout << " " << music.getSampleRate() << " samples / sec" << std::endl; std::cout << " " << music.getChannelCount() << " channels" << std::endl; // Play it music.play(); // Loop while the music is playing while (music.getStatus() == sf::Music::Playing) { // Leave some CPU time for other processes sf::sleep(sf::milliseconds(100)); // Display the playing position std::cout << "\rPlaying... " << std::fixed << std::setprecision(2) << music.getPlayingOffset().asSeconds() << " sec " ; std::cout << std::flush; } std::cout << std::endl; } //////////////////////////////////////////////////////////// /// Entry point of application /// /// \return Application exit code /// //////////////////////////////////////////////////////////// int main() { // Play a sound playSound(); // Play a music playMusic(); // Wait until the user presses 'enter' key std::cout << "Press enter to exit..." << std::endl; std::cin.ignore(10000, '\n' ); return EXIT_SUCCESS; } |
Source at commit tip created 11 years 11 months ago. By Nathan Adams, Initial commit |
---|