/******************************************************************************************* * * raylib [audio] example - Music playing (streaming) * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #include "raylib-cpp.hpp" int main() { // Initialization //-------------------------------------------------------------------------------------- const int screenWidth = 800; const int screenHeight = 450; raylib::Window window(screenWidth, screenHeight, "raylib [audio] example - music playing (streaming)"); raylib::AudioDevice audio; // Initialize audio device raylib::Music music("resources/target.ogg"); music.Play(); float timePlayed = 0.0f; bool pause = false; SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!window.ShouldClose()) { // Detect window close button or ESC key // Update //---------------------------------------------------------------------------------- music.Update(); // Update music buffer with new stream data // Restart music playing (stop and play) if (IsKeyPressed(KEY_SPACE)) { music.Stop(); music.Play(); } // Pause/Resume music playing if (IsKeyPressed(KEY_P)) { pause = !pause; if (pause) { music.Pause(); } else { music.Resume(); } } // Get timePlayed scaled to bar dimensions (400 pixels) timePlayed = music.GetTimePlayed() / music.GetTimeLength() * 400; if (timePlayed > 400) music.Stop(); //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); { window.ClearBackground(RAYWHITE); DrawText("MUSIC SHOULD BE PLAYING!", 255, 150, 20, LIGHTGRAY); DrawRectangle(200, 200, 400, 12, LIGHTGRAY); DrawRectangle(200, 200, static_cast(timePlayed), 12, MAROON); DrawRectangleLines(200, 200, 400, 12, GRAY); DrawText("PRESS SPACE TO RESTART MUSIC", 215, 250, 20, LIGHTGRAY); DrawText("PRESS P TO PAUSE/RESUME MUSIC", 208, 280, 20, LIGHTGRAY); } EndDrawing(); //---------------------------------------------------------------------------------- } return 0; }