njin
Engine 2D gọn nhẹ để tự tay làm game theo ý mình. Vibe coding cũng ổn luôn
Loading...
Searching...
No Matches
Music

Nhạc stream từ đĩa: nhạc nền, âm thanh môi trường dài. Tiếp...

Các hàm

music_handle njin::music_load (context &ctx, const char *path)
 Nạp một bản nhạc để stream từ đĩa.
void njin::music_unload (context &ctx, music_handle handle)
 Giải phóng music.
void njin::music_set_volume (context &ctx, music_handle handle, f32 volume)
 Đặt âm lượng của music, từ 0 trở lên (1 là âm lượng gốc).
void njin::music_set_muted (context &ctx, music_handle handle, bool muted)
 Tắt hoặc bật tiếng music, không đụng đến âm lượng đã lưu.
void njin::music_set_looping (context &ctx, music_handle handle, bool looping)
 Bật hoặc tắt chế độ lặp.
void njin::music_play (context &ctx, music_handle handle)
 Phát từ đầu, kể cả khi đang tạm dừng hoặc đang phát.
void njin::music_stop (context &ctx, music_handle handle)
 Dừng và đưa vị trí về đầu bài.
void njin::music_pause (context &ctx, music_handle handle)
 Tạm dừng nhưng giữ nguyên vị trí.
void njin::music_resume (context &ctx, music_handle handle)
 Phát tiếp từ chỗ music_pause() đã dừng.
bool njin::music_playing (context &ctx, music_handle handle)
 Music có đang phát không (không tính lúc tạm dừng).
void njin::music_fade_in (context &ctx, music_handle handle, f32 seconds)
 Phát từ đầu, to dần từ im lặng trong seconds giây.
void njin::music_fade_out (context &ctx, music_handle handle, f32 seconds)
 Nhỏ dần rồi dừng.
void njin::music_crossfade (context &ctx, music_handle handle, f32 seconds)
 Chuyển nhạc: mọi music khác đang phát nhỏ dần rồi dừng, trong lúc handle to dần.

Mô tả chi tiết

Nhạc stream từ đĩa: nhạc nền, âm thanh môi trường dài.

Thông tin về hàm

◆ music_load()

music_handle njin::music_load ( context & ctx,
const char * path )

Nạp một bản nhạc để stream từ đĩa.

Nhạc không nằm hết trong bộ nhớ mà được giải mã từng đoạn, hợp với nhạc nền hoặc âm thanh môi trường dài. Nó lặp ngay trong bộ giải mã nên không có quãng lặng ở chỗ nối. Module âm thanh của engine cấp dữ liệu cho stream mỗi frame.

Các tham số
ctxContext của engine.
pathĐường dẫn file nhạc (ogg, mp3, wav, flac...).
Giá trị trả về
Handle của music, hoặc handle có id 0 nếu không có thiết bị, file thiếu hoặc không giải mã được.

◆ music_unload()

void njin::music_unload ( context & ctx,
music_handle handle )

Giải phóng music.

Handle không hợp lệ bị bỏ qua.

Các tham số
ctxContext của engine.
handleMusic cần giải phóng.

◆ music_set_volume()

void njin::music_set_volume ( context & ctx,
music_handle handle,
f32 volume )

Đặt âm lượng của music, từ 0 trở lên (1 là âm lượng gốc).

Mặc định là 1.

Các tham số
ctxContext của engine.
handleMusic cần đặt.
volumeÂm lượng. Giá trị âm được coi là 0.

◆ music_set_muted()

void njin::music_set_muted ( context & ctx,
music_handle handle,
bool muted )

Tắt hoặc bật tiếng music, không đụng đến âm lượng đã lưu.

Các tham số
ctxContext của engine.
handleMusic cần đặt.
mutedtrue để tắt tiếng.

◆ music_set_looping()

void njin::music_set_looping ( context & ctx,
music_handle handle,
bool looping )

Bật hoặc tắt chế độ lặp.

Mặc định là bật. Có hiệu lực ngay cả giữa bài.

Các tham số
ctxContext của engine.
handleMusic cần đặt.
loopingtrue để lặp.

◆ music_play()

void njin::music_play ( context & ctx,
music_handle handle )

Phát từ đầu, kể cả khi đang tạm dừng hoặc đang phát.

Các tham số
ctxContext của engine.
handleMusic cần phát.

◆ music_stop()

void njin::music_stop ( context & ctx,
music_handle handle )

Dừng và đưa vị trí về đầu bài.

Các tham số
ctxContext của engine.
handleMusic cần dừng.

◆ music_pause()

void njin::music_pause ( context & ctx,
music_handle handle )

Tạm dừng nhưng giữ nguyên vị trí.

Dùng music_resume() để phát tiếp.

Các tham số
ctxContext của engine.
handleMusic cần tạm dừng.

◆ music_resume()

void njin::music_resume ( context & ctx,
music_handle handle )

Phát tiếp từ chỗ music_pause() đã dừng.

Các tham số
ctxContext của engine.
handleMusic cần phát tiếp.

◆ music_playing()

bool njin::music_playing ( context & ctx,
music_handle handle )

Music có đang phát không (không tính lúc tạm dừng).

Các tham số
ctxContext của engine.
handleMusic.
Giá trị trả về
true nếu đang phát.

◆ music_fade_in()

void njin::music_fade_in ( context & ctx,
music_handle handle,
f32 seconds )

Phát từ đầu, to dần từ im lặng trong seconds giây.

Đang phát thì chỉ to dần lên mức đầy từ mức hiện tại.

Các tham số
ctxContext của engine.
handleMusic.
secondsThời gian to dần, giây (giờ thật).

◆ music_fade_out()

void njin::music_fade_out ( context & ctx,
music_handle handle,
f32 seconds )

Nhỏ dần rồi dừng.

Các tham số
ctxContext của engine.
handleMusic.
secondsThời gian nhỏ dần, giây (giờ thật).

◆ music_crossfade()

void njin::music_crossfade ( context & ctx,
music_handle handle,
f32 seconds )

Chuyển nhạc: mọi music khác đang phát nhỏ dần rồi dừng, trong lúc handle to dần.

Gọi khi vào màn mới, khi gặp trùm. handle đang phát rồi thì nó tiếp tục, không bị phát lại từ đầu.

njin::music_crossfade(ctx, g.boss_theme, 1.5f);
void music_crossfade(context &ctx, music_handle handle, f32 seconds)
Chuyển nhạc: mọi music khác đang phát nhỏ dần rồi dừng, trong lúc handle to dần.
Các tham số
ctxContext của engine.
handleMusic cần chuyển sang. Handle id 0 thì chỉ tắt dần mọi nhạc.
secondsThời gian chuyển, giây (giờ thật).