Hello Chemberzhy,
the Bass Audio Library and Visual FoxPro are good choices. I use the Bass.DLL in my own Audio Player to play flac and mp3 Song files.
First you need a Program File to DECLARE the Bass Functions in Visual FoxPro. There is an Example in Visual Basic Sourcecode from un4seen. The VB Sourcecode must translate from VB to VFP Language. For Example
*-- Decl_Bass.PRG
*..
*-- Visual Basic Sourcerow
*Declare Function BASS_Start Lib "bass.dll" () As Long
*-- change to Visual FoxPro Syntax
DECLARE LONG BASS_Start IN "bass.dll"
*-- VB Sourcerow
*Declare Function BASS_Stop Lib "bass.dll" () As Long
DECLARE LONG BASS_Stop IN "bass.dll"
*-- VB Sourcerow
*Declare Function BASS_Pause Lib "bass.dll" () As Long
DECLARE LONG BASS_Pause IN "bass.dll"
*..
In the VB Sourcefile, I thing it is named Bass.bas, are some hundred rows, but to play Song files you don’t need all of them.
In the next step, youre Main Program must start youre Decl_Bass.PRG, like this.
*-- Main.PRG
..
*-- Bass Declarations
DO "Source\Decl_Bass.PRG"
..
*-- Start Player Form
DO FORM "Source\AudioPlayer.SCX"
READ EVENTS
..
In my Player Form I use different methods for select Song files from Table to View, play Song, play random Song and so on. Here I use the DECLAREd Bass Functions. For example:
*-- frmPlayer.Load()
IF BASS_Init(-1, 44100, 0, (THISFORM.HWND), 0) = BASSFALSE THEN
THISFORM.gx_BassError("Can't initialize digital sound system")
ENDIF
*-- frmPlayer.PlaySong()
** Start play
** -------------------------------------------------
** lRetVal = BASS_ChannelPlay( nHandle, lTrueFalse )
** -------------------------------------------------
** lTrue :Restart, play the stream from the start
** lFalse :Play the music continue from current position
IF NOT(BASS_ChannelPlay( THISFORM.gnHStream, BASSTRUE ) # 0) THEN
THISFORM.gx_BassError("Can't play Stream")
ENDIF
*-- frmPlayer.UnLoad()
*-- Close Sound System and release everything
BASS_Free()
BASS_PluginFree(1)
I hope this replay can help.