Welcome

首页 / 软件开发 / Delphi / Delphik中用多媒体库Bass.dll播放mp3 [4] - 显示与设置播放进度

Delphik中用多媒体库Bass.dll播放mp3 [4] - 显示与设置播放进度2011-04-23 博客园 万一//获取文件流的长度, 单位是字节
function BASS_ChannelGetLength(
handle: DWORD; {流句柄}
mode: DWORD {获取模式; 有两种选择, 但对 HSTREAM 流只能使用 BASS_POS_BYTE}
): QWORD; stdcall; external bassdll;
//获取流的当前指针位置, 单位是字节
function BASS_ChannelGetPosition(
handle: DWORD; {流句柄}
mode: DWORD {获取模式; 有两种选择, 但对 HSTREAM 流只能使用 BASS_POS_BYTE}
): QWORD; stdcall; external bassdll;
//根据流的指针位置来获取时间点, 单位是秒, 是非常精确的浮点数
function BASS_ChannelBytes2Seconds(
handle: DWORD; {流句柄}
pos: QWORD {流的指针位置, 单位是字节, QWORD = Int64}
): Double; stdcall;external bassdll;
//和 BASS_ChannelBytes2Seconds 相反, BASS_ChannelSeconds2Bytes 可以通过时间获取 流的指针位置.
function BASS_ChannelSeconds2Bytes(
handle: DWORD;
pos: Double
): QWORD; stdcall;external bassdll;
//和 BASS_ChannelGetPosition 相反, BASS_ChannelSetPosition 可以设置流的指针位置 .
function BASS_ChannelSetPosition(
handle: DWORD;
pos: QWORD;
mode: DWORD
): BOOL; stdcall; external bassdll;
//要获取音乐的总时间可以:
BASS_ChannelBytes2Seconds(hs, BASS_ChannelGetLength(hs, BASS_POS_BYTE));
//要获取音乐播放的当前时间可以:
BASS_ChannelBytes2Seconds(hs, BASS_ChannelGetPosition(hs, BASS_POS_BYTE));

本例效果图: