aboutsummaryrefslogtreecommitdiff
path: root/examples/audio_music_stream.lua
blob: 33cf335f367314c4794b4b7adbde52b1ab993388 (plain)
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
-------------------------------------------------------------------------------------------
--
--  raylib [audio] example - Music playing (streaming)
--
--  NOTE: This example requires OpenAL Soft library installed
--
--  This example has been created using raylib 1.6 (www.raylib.com)
--  raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
--
--  Copyright (c) 2014-2016 Ramon Santamaria (@raysan5)
--
-------------------------------------------------------------------------------------------

-- Initialization
-------------------------------------------------------------------------------------------
local screenWidth = 800
local screenHeight = 450

InitWindow(screenWidth, screenHeight, "raylib [audio] example - music playing (streaming)")

InitAudioDevice()              -- Initialize audio device

local music = LoadMusicStream("resources/audio/guitar_noodling.ogg")

PlayMusicStream(music)

local framesCounter = 0
local timePlayed = 0.0

SetTargetFPS(60)                -- Set our game to run at 60 frames-per-second
-------------------------------------------------------------------------------------------

-- Main game loop
while not WindowShouldClose() do    -- Detect window close button or ESC key
    -- Update
    ---------------------------------------------------------------------------------------
    framesCounter = framesCounter + 1

    timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*100*4 -- We scale by 4 to fit 400 pixels

    UpdateMusicStream(music)        -- Update music buffer with new stream data
    ---------------------------------------------------------------------------------------

    -- Draw
    ---------------------------------------------------------------------------------------
    BeginDrawing()

        ClearBackground(RAYWHITE)

        DrawText("MUSIC SHOULD BE PLAYING!", 255, 200, 20, LIGHTGRAY)

        DrawRectangle(200, 250, 400, 12, LIGHTGRAY)
        DrawRectangle(200, 250, timePlayed//1, 12, MAROON)

    EndDrawing()
    ---------------------------------------------------------------------------------------
end

-- De-Initialization
-------------------------------------------------------------------------------------------
UnloadMusicStream(music)   -- Unload music stream buffers from RAM

CloseAudioDevice()         -- Close audio device (music streaming is automatically stopped)

CloseWindow()              -- Close window and OpenGL context
-------------------------------------------------------------------------------------------