Wie LibZPlay Multimedia-DLL mit PB verwenden ?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
andy7
Beiträge: 6
Registriert: 02.03.2012 14:11
Computerausstattung: WinXP prof - PB 4.6 - PureResize460

Wie LibZPlay Multimedia-DLL mit PB verwenden ?

Beitrag von andy7 »

Hallo,
ich würde sehr gerne die unter http://libzplay.sourceforge.net/ kostenlos erhältliche DLL unter PB verwenden.
Speziell geht es mir um die Sound-Abteilung. Da ich PB-Anfänger bin, bräuchte ich Hilfe, wie man die Funktionen
korrekt anspricht. Es stehen bei der DLL verschiedene Interfaces zur Verfügung. Irgendwie blicke ich es nicht....

Schon mit dem nachfolgenden Code gibt es Probleme:

Code: Alles auswählen

OpenLibrary(1, "libZPlay.dll")
fil.s = "c:\test.wav" 

result.l = ExamineLibraryFunctions(1)
Debug result

result = CountLibraryFunctions(1)
Debug "number of functions:"+Str(result)   ;OK

While NextLibraryFunction()       ;generate list of available function names
    Debug  LibraryFunctionName()   ;OK 93 functions
Wend

*z.l = GetFunction(1, "zplay_CreateZPlay")  
*cp.l = CallFunctionFast(*z)            
 Debug Str(*z) + " pointer to class instance:" + Str(*cp)  ;OK
  
 *e.l = GetFunction(1, "zplay_OpenFile")
 Debug *e    ;OK
 b.l= CallFunctionFast(*e,@fil,3)  ;*** illegal memory access (read error at adress 1935424143)
  
  *z = GetFunction(1, "zplay_GetFileFormat")
 Debug *z   ;OK
 e.l = CallFunctionFast(*z,@fil)    ;*** illegal memory access 
 Debug e

CloseLibrary(1) 
End
Im voraus danke für alle Tips!
Andy7
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Wie LibZPlay Multimedia-DLL mit PB verwenden ?

Beitrag von ts-soft »

Das C-Interface wäre das sinnvollste. Ich habe hier mal das allernotwendigste generiert und ein Beispiel hinzugefügt.
Den Rest wirste wohl selber erledigen müssen, sind ne menge Strukturen und Konstanten usw.

Code: Alles auswählen

;==========================================================================
; Generated with PureDLLHelper, Copyright ©2012 by Thomas <ts-soft> Schulz
;==========================================================================

Prototype  CreateZPlay()
Prototype  zplay_AddFile(a, b, c)
Prototype  zplay_AddFileW(a, b, c)
Prototype  zplay_Close(a)
Prototype  zplay_CreateZPlay()
Prototype  zplay_DestroyZPlay(a)
Prototype  zplay_DetectBPM(a, b)
Prototype  zplay_DetectFileBPM(a, b, c, d)
Prototype  zplay_DetectFileBPMW(a, b, c, d)
Prototype  zplay_DrawFFTGraphOnHDC(a, b, c, d, e, f)
Prototype  zplay_DrawFFTGraphOnHWND(a, b, c, d, e, f)
Prototype  zplay_EnableEcho(a, b)
Prototype  zplay_EnableEqualizer(a, b)
Prototype  zplay_EnumerateWaveOut(a)
Prototype  zplay_GetBitrate(a, b)
Prototype  zplay_GetDynamicStreamLoad(a, b)
Prototype  zplay_GetEchoParam(a, b, c)
Prototype  zplay_GetEqualizerBandGain(a, b)
Prototype  zplay_GetEqualizerParam(a, b, c, d)
Prototype  zplay_GetEqualizerPoints(a, b, c)
Prototype  zplay_GetEqualizerPreampGain(a)
Prototype  zplay_GetError(a)
Prototype  zplay_GetErrorW(a)
Prototype  zplay_GetFFTData(a, b, c, d, e, f, g, h, i)
Prototype  zplay_GetFFTGraphParam(a, b)
Prototype  zplay_GetFileFormat(a, b)
Prototype  zplay_GetFileFormatW(a, b)
Prototype  zplay_GetMasterVolume(a, b, c)
Prototype  zplay_GetPitch(a)
Prototype  zplay_GetPlayerVolume(a, b, c)
Prototype  zplay_GetPosition(a, b)
Prototype  zplay_GetRate(a)
Prototype  zplay_GetSettings(a, b)
Prototype  zplay_GetStatus(a, b)
Prototype  zplay_GetStreamInfo(a, b)
Prototype  zplay_GetStreamInfoW(a, b)
Prototype  zplay_GetTempo(a)
Prototype  zplay_GetVUData(a, b, c)
Prototype  zplay_GetVersion(a)
Prototype  zplay_GetWaveOutInfo(a, b, c)
Prototype  zplay_GetWaveOutInfoW(a, b, c)
Prototype  zplay_IsStreamDataFree(a, b)
Prototype  zplay_LoadFileID3(a, b, c, d, e)
Prototype  zplay_LoadFileID3W(a, b, c, d, e)
Prototype  zplay_LoadID3(a, b, c)
Prototype  zplay_LoadID3W(a, b, c)
Prototype  zplay_MixChannels(a, b, c, d)
Prototype  zplay_OpenFile(a, b, c)
Prototype  zplay_OpenFileW(a, b, c)
Prototype  zplay_OpenStream(a, b, c, d, e, f)
Prototype  zplay_Pause(a)
Prototype  zplay_Play(a)
Prototype  zplay_PlayLoop(a, b, c, d, e, f, g)
Prototype  zplay_PushDataToStream(a, b, c)
Prototype  zplay_Resume(a)
Prototype  zplay_ReverseMode(a, b)
Prototype  zplay_Seek(a, b, c, d)
Prototype  zplay_SetCallbackFunc(a, b, c, d)
Prototype  zplay_SetEchoParam(a, b, c)
Prototype  zplay_SetEqualizerBandGain(a, b, c)
Prototype  zplay_SetEqualizerParam(a, b, c, d)
Prototype  zplay_SetEqualizerPoints(a, b, c)
Prototype  zplay_SetEqualizerPreampGain(a, b)
Prototype  zplay_SetFFTGraphParam(a, b, c)
Prototype  zplay_SetMasterVolume(a, b, c)
Prototype  zplay_SetPitch(a, b)
Prototype  zplay_SetPlayerVolume(a, b, c)
Prototype  zplay_SetRate(a, b)
Prototype  zplay_SetSettings(a, b, c)
Prototype  zplay_SetTempo(a, b)
Prototype  zplay_SetWaveOutDevice(a, b)
Prototype  zplay_SlideVolume(a, b, c, d, e, f, g, h, i)
Prototype  zplay_StereoCut(a, b, c, d)
Prototype  zplay_Stop(a)
Prototype  zplay_memcpy(a, b, c)
Prototype  zplay_memmove(a, b, c)
Prototype  zplay_memset(a, b, c)
Prototype  zplay_strcpy(a, b)
Prototype  zplay_strlen(a)
Prototype  zplay_wcscpy(a, b)
Prototype  zplay_wcslen(a)
Prototype  zplay_LoadID3Ex(a, b, c)
Prototype  zplay_LoadID3ExW(a, b, c)
Prototype  zplay_LoadFileID3Ex(a, b, c, d, e)
Prototype  zplay_LoadFileID3ExW(a, b, c, d, e)
Prototype  zplay_DrawBitmapToHDC(a, b, c, d, e, f, g)
Prototype  zplay_DrawBitmapToHWND(a, b, c, d, e, f, g)
Prototype  zplay_EnumerateWaveIn(a)
Prototype  zplay_GetWaveInInfo(a, b, c)
Prototype  zplay_GetWaveInInfoW(a, b, c)
Prototype  zplay_SetWaveInDevice(a, b)
Prototype  zplay_SetWaveOutFile(a, b, c, d)
Prototype  zplay_SetWaveOutFileW(a, b, c, d)

Global CreateZPlay.CreateZPlay
Global zplay_AddFile.zplay_AddFile
Global zplay_AddFileW.zplay_AddFileW
Global zplay_Close.zplay_Close
Global zplay_CreateZPlay.zplay_CreateZPlay
Global zplay_DestroyZPlay.zplay_DestroyZPlay
Global zplay_DetectBPM.zplay_DetectBPM
Global zplay_DetectFileBPM.zplay_DetectFileBPM
Global zplay_DetectFileBPMW.zplay_DetectFileBPMW
Global zplay_DrawFFTGraphOnHDC.zplay_DrawFFTGraphOnHDC
Global zplay_DrawFFTGraphOnHWND.zplay_DrawFFTGraphOnHWND
Global zplay_EnableEcho.zplay_EnableEcho
Global zplay_EnableEqualizer.zplay_EnableEqualizer
Global zplay_EnumerateWaveOut.zplay_EnumerateWaveOut
Global zplay_GetBitrate.zplay_GetBitrate
Global zplay_GetDynamicStreamLoad.zplay_GetDynamicStreamLoad
Global zplay_GetEchoParam.zplay_GetEchoParam
Global zplay_GetEqualizerBandGain.zplay_GetEqualizerBandGain
Global zplay_GetEqualizerParam.zplay_GetEqualizerParam
Global zplay_GetEqualizerPoints.zplay_GetEqualizerPoints
Global zplay_GetEqualizerPreampGain.zplay_GetEqualizerPreampGain
Global zplay_GetError.zplay_GetError
Global zplay_GetErrorW.zplay_GetErrorW
Global zplay_GetFFTData.zplay_GetFFTData
Global zplay_GetFFTGraphParam.zplay_GetFFTGraphParam
Global zplay_GetFileFormat.zplay_GetFileFormat
Global zplay_GetFileFormatW.zplay_GetFileFormatW
Global zplay_GetMasterVolume.zplay_GetMasterVolume
Global zplay_GetPitch.zplay_GetPitch
Global zplay_GetPlayerVolume.zplay_GetPlayerVolume
Global zplay_GetPosition.zplay_GetPosition
Global zplay_GetRate.zplay_GetRate
Global zplay_GetSettings.zplay_GetSettings
Global zplay_GetStatus.zplay_GetStatus
Global zplay_GetStreamInfo.zplay_GetStreamInfo
Global zplay_GetStreamInfoW.zplay_GetStreamInfoW
Global zplay_GetTempo.zplay_GetTempo
Global zplay_GetVUData.zplay_GetVUData
Global zplay_GetVersion.zplay_GetVersion
Global zplay_GetWaveOutInfo.zplay_GetWaveOutInfo
Global zplay_GetWaveOutInfoW.zplay_GetWaveOutInfoW
Global zplay_IsStreamDataFree.zplay_IsStreamDataFree
Global zplay_LoadFileID3.zplay_LoadFileID3
Global zplay_LoadFileID3W.zplay_LoadFileID3W
Global zplay_LoadID3.zplay_LoadID3
Global zplay_LoadID3W.zplay_LoadID3W
Global zplay_MixChannels.zplay_MixChannels
Global zplay_OpenFile.zplay_OpenFile
Global zplay_OpenFileW.zplay_OpenFileW
Global zplay_OpenStream.zplay_OpenStream
Global zplay_Pause.zplay_Pause
Global zplay_Play.zplay_Play
Global zplay_PlayLoop.zplay_PlayLoop
Global zplay_PushDataToStream.zplay_PushDataToStream
Global zplay_Resume.zplay_Resume
Global zplay_ReverseMode.zplay_ReverseMode
Global zplay_Seek.zplay_Seek
Global zplay_SetCallbackFunc.zplay_SetCallbackFunc
Global zplay_SetEchoParam.zplay_SetEchoParam
Global zplay_SetEqualizerBandGain.zplay_SetEqualizerBandGain
Global zplay_SetEqualizerParam.zplay_SetEqualizerParam
Global zplay_SetEqualizerPoints.zplay_SetEqualizerPoints
Global zplay_SetEqualizerPreampGain.zplay_SetEqualizerPreampGain
Global zplay_SetFFTGraphParam.zplay_SetFFTGraphParam
Global zplay_SetMasterVolume.zplay_SetMasterVolume
Global zplay_SetPitch.zplay_SetPitch
Global zplay_SetPlayerVolume.zplay_SetPlayerVolume
Global zplay_SetRate.zplay_SetRate
Global zplay_SetSettings.zplay_SetSettings
Global zplay_SetTempo.zplay_SetTempo
Global zplay_SetWaveOutDevice.zplay_SetWaveOutDevice
Global zplay_SlideVolume.zplay_SlideVolume
Global zplay_StereoCut.zplay_StereoCut
Global zplay_Stop.zplay_Stop
Global zplay_memcpy.zplay_memcpy
Global zplay_memmove.zplay_memmove
Global zplay_memset.zplay_memset
Global zplay_strcpy.zplay_strcpy
Global zplay_strlen.zplay_strlen
Global zplay_wcscpy.zplay_wcscpy
Global zplay_wcslen.zplay_wcslen
Global zplay_LoadID3Ex.zplay_LoadID3Ex
Global zplay_LoadID3ExW.zplay_LoadID3ExW
Global zplay_LoadFileID3Ex.zplay_LoadFileID3Ex
Global zplay_LoadFileID3ExW.zplay_LoadFileID3ExW
Global zplay_DrawBitmapToHDC.zplay_DrawBitmapToHDC
Global zplay_DrawBitmapToHWND.zplay_DrawBitmapToHWND
Global zplay_EnumerateWaveIn.zplay_EnumerateWaveIn
Global zplay_GetWaveInInfo.zplay_GetWaveInInfo
Global zplay_GetWaveInInfoW.zplay_GetWaveInInfoW
Global zplay_SetWaveInDevice.zplay_SetWaveInDevice
Global zplay_SetWaveOutFile.zplay_SetWaveOutFile
Global zplay_SetWaveOutFileW.zplay_SetWaveOutFileW

Procedure.i libzplay_LoadDLL()
  Protected hDLL.i

  hDLL = OpenLibrary(#PB_Any, "libzplay.dll")
  If hDLL <> 0
    CreateZPlay = GetFunction(hDLL, "CreateZPlay")
    zplay_AddFile = GetFunction(hDLL, "zplay_AddFile")
    zplay_AddFileW = GetFunction(hDLL, "zplay_AddFileW")
    zplay_Close = GetFunction(hDLL, "zplay_Close")
    zplay_CreateZPlay = GetFunction(hDLL, "zplay_CreateZPlay")
    zplay_DestroyZPlay = GetFunction(hDLL, "zplay_DestroyZPlay")
    zplay_DetectBPM = GetFunction(hDLL, "zplay_DetectBPM")
    zplay_DetectFileBPM = GetFunction(hDLL, "zplay_DetectFileBPM")
    zplay_DetectFileBPMW = GetFunction(hDLL, "zplay_DetectFileBPMW")
    zplay_DrawFFTGraphOnHDC = GetFunction(hDLL, "zplay_DrawFFTGraphOnHDC")
    zplay_DrawFFTGraphOnHWND = GetFunction(hDLL, "zplay_DrawFFTGraphOnHWND")
    zplay_EnableEcho = GetFunction(hDLL, "zplay_EnableEcho")
    zplay_EnableEqualizer = GetFunction(hDLL, "zplay_EnableEqualizer")
    zplay_EnumerateWaveOut = GetFunction(hDLL, "zplay_EnumerateWaveOut")
    zplay_GetBitrate = GetFunction(hDLL, "zplay_GetBitrate")
    zplay_GetDynamicStreamLoad = GetFunction(hDLL, "zplay_GetDynamicStreamLoad")
    zplay_GetEchoParam = GetFunction(hDLL, "zplay_GetEchoParam")
    zplay_GetEqualizerBandGain = GetFunction(hDLL, "zplay_GetEqualizerBandGain")
    zplay_GetEqualizerParam = GetFunction(hDLL, "zplay_GetEqualizerParam")
    zplay_GetEqualizerPoints = GetFunction(hDLL, "zplay_GetEqualizerPoints")
    zplay_GetEqualizerPreampGain = GetFunction(hDLL, "zplay_GetEqualizerPreampGain")
    zplay_GetError = GetFunction(hDLL, "zplay_GetError")
    zplay_GetErrorW = GetFunction(hDLL, "zplay_GetErrorW")
    zplay_GetFFTData = GetFunction(hDLL, "zplay_GetFFTData")
    zplay_GetFFTGraphParam = GetFunction(hDLL, "zplay_GetFFTGraphParam")
    zplay_GetFileFormat = GetFunction(hDLL, "zplay_GetFileFormat")
    zplay_GetFileFormatW = GetFunction(hDLL, "zplay_GetFileFormatW")
    zplay_GetMasterVolume = GetFunction(hDLL, "zplay_GetMasterVolume")
    zplay_GetPitch = GetFunction(hDLL, "zplay_GetPitch")
    zplay_GetPlayerVolume = GetFunction(hDLL, "zplay_GetPlayerVolume")
    zplay_GetPosition = GetFunction(hDLL, "zplay_GetPosition")
    zplay_GetRate = GetFunction(hDLL, "zplay_GetRate")
    zplay_GetSettings = GetFunction(hDLL, "zplay_GetSettings")
    zplay_GetStatus = GetFunction(hDLL, "zplay_GetStatus")
    zplay_GetStreamInfo = GetFunction(hDLL, "zplay_GetStreamInfo")
    zplay_GetStreamInfoW = GetFunction(hDLL, "zplay_GetStreamInfoW")
    zplay_GetTempo = GetFunction(hDLL, "zplay_GetTempo")
    zplay_GetVUData = GetFunction(hDLL, "zplay_GetVUData")
    zplay_GetVersion = GetFunction(hDLL, "zplay_GetVersion")
    zplay_GetWaveOutInfo = GetFunction(hDLL, "zplay_GetWaveOutInfo")
    zplay_GetWaveOutInfoW = GetFunction(hDLL, "zplay_GetWaveOutInfoW")
    zplay_IsStreamDataFree = GetFunction(hDLL, "zplay_IsStreamDataFree")
    zplay_LoadFileID3 = GetFunction(hDLL, "zplay_LoadFileID3")
    zplay_LoadFileID3W = GetFunction(hDLL, "zplay_LoadFileID3W")
    zplay_LoadID3 = GetFunction(hDLL, "zplay_LoadID3")
    zplay_LoadID3W = GetFunction(hDLL, "zplay_LoadID3W")
    zplay_MixChannels = GetFunction(hDLL, "zplay_MixChannels")
    zplay_OpenFile = GetFunction(hDLL, "zplay_OpenFile")
    zplay_OpenFileW = GetFunction(hDLL, "zplay_OpenFileW")
    zplay_OpenStream = GetFunction(hDLL, "zplay_OpenStream")
    zplay_Pause = GetFunction(hDLL, "zplay_Pause")
    zplay_Play = GetFunction(hDLL, "zplay_Play")
    zplay_PlayLoop = GetFunction(hDLL, "zplay_PlayLoop")
    zplay_PushDataToStream = GetFunction(hDLL, "zplay_PushDataToStream")
    zplay_Resume = GetFunction(hDLL, "zplay_Resume")
    zplay_ReverseMode = GetFunction(hDLL, "zplay_ReverseMode")
    zplay_Seek = GetFunction(hDLL, "zplay_Seek")
    zplay_SetCallbackFunc = GetFunction(hDLL, "zplay_SetCallbackFunc")
    zplay_SetEchoParam = GetFunction(hDLL, "zplay_SetEchoParam")
    zplay_SetEqualizerBandGain = GetFunction(hDLL, "zplay_SetEqualizerBandGain")
    zplay_SetEqualizerParam = GetFunction(hDLL, "zplay_SetEqualizerParam")
    zplay_SetEqualizerPoints = GetFunction(hDLL, "zplay_SetEqualizerPoints")
    zplay_SetEqualizerPreampGain = GetFunction(hDLL, "zplay_SetEqualizerPreampGain")
    zplay_SetFFTGraphParam = GetFunction(hDLL, "zplay_SetFFTGraphParam")
    zplay_SetMasterVolume = GetFunction(hDLL, "zplay_SetMasterVolume")
    zplay_SetPitch = GetFunction(hDLL, "zplay_SetPitch")
    zplay_SetPlayerVolume = GetFunction(hDLL, "zplay_SetPlayerVolume")
    zplay_SetRate = GetFunction(hDLL, "zplay_SetRate")
    zplay_SetSettings = GetFunction(hDLL, "zplay_SetSettings")
    zplay_SetTempo = GetFunction(hDLL, "zplay_SetTempo")
    zplay_SetWaveOutDevice = GetFunction(hDLL, "zplay_SetWaveOutDevice")
    zplay_SlideVolume = GetFunction(hDLL, "zplay_SlideVolume")
    zplay_StereoCut = GetFunction(hDLL, "zplay_StereoCut")
    zplay_Stop = GetFunction(hDLL, "zplay_Stop")
    zplay_memcpy = GetFunction(hDLL, "zplay_memcpy")
    zplay_memmove = GetFunction(hDLL, "zplay_memmove")
    zplay_memset = GetFunction(hDLL, "zplay_memset")
    zplay_strcpy = GetFunction(hDLL, "zplay_strcpy")
    zplay_strlen = GetFunction(hDLL, "zplay_strlen")
    zplay_wcscpy = GetFunction(hDLL, "zplay_wcscpy")
    zplay_wcslen = GetFunction(hDLL, "zplay_wcslen")
    zplay_LoadID3Ex = GetFunction(hDLL, "zplay_LoadID3Ex")
    zplay_LoadID3ExW = GetFunction(hDLL, "zplay_LoadID3ExW")
    zplay_LoadFileID3Ex = GetFunction(hDLL, "zplay_LoadFileID3Ex")
    zplay_LoadFileID3ExW = GetFunction(hDLL, "zplay_LoadFileID3ExW")
    zplay_DrawBitmapToHDC = GetFunction(hDLL, "zplay_DrawBitmapToHDC")
    zplay_DrawBitmapToHWND = GetFunction(hDLL, "zplay_DrawBitmapToHWND")
    zplay_EnumerateWaveIn = GetFunction(hDLL, "zplay_EnumerateWaveIn")
    zplay_GetWaveInInfo = GetFunction(hDLL, "zplay_GetWaveInInfo")
    zplay_GetWaveInInfoW = GetFunction(hDLL, "zplay_GetWaveInInfoW")
    zplay_SetWaveInDevice = GetFunction(hDLL, "zplay_SetWaveInDevice")
    zplay_SetWaveOutFile = GetFunction(hDLL, "zplay_SetWaveOutFile")
    zplay_SetWaveOutFileW = GetFunction(hDLL, "zplay_SetWaveOutFileW")

    ProcedureReturn hDLL
  EndIf

  ProcedureReturn #False
EndProcedure

#sfMp3 = 1

; beispiel
Define hZPlay
Define File.s = "d:\Dateien\Musik\ac_dc\acdc - back in black (ultimix remix).mp3"
If libzplay_LoadDLL()
  hZPlay = CreateZPlay()
  If hZPlay
    If zplay_OpenFile(hZPlay, @File, #sfMp3)
      zplay_Play(hZPlay)
    EndIf
    MessageRequester("", "")
    zplay_DestroyZPlay(hZPlay)
  EndIf
EndIf
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Wie LibZPlay Multimedia-DLL mit PB verwenden ?

Beitrag von ts-soft »

Hab Dir noch eine komplette Include erstellt, diese benutzt die import lib des SDKs:
http://www.purebasic.fr/german/viewtopi ... 11#p299911

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
andy7
Beiträge: 6
Registriert: 02.03.2012 14:11
Computerausstattung: WinXP prof - PB 4.6 - PureResize460

Re: Wie LibZPlay Multimedia-DLL mit PB verwenden ?

Beitrag von andy7 »

Hallo Thomas,
vielen Dank für Deine Mühe! Hat mir sehr geholfen und ist vielleicht auch für andere von Interesse.

Gruß
Andreas
andy7
Beiträge: 6
Registriert: 02.03.2012 14:11
Computerausstattung: WinXP prof - PB 4.6 - PureResize460

Re: Wie LibZPlay Multimedia-DLL mit PB verwenden ?

Beitrag von andy7 »

Hallo nochmal,

mit der VU-Anzeige habe ich noch Probleme.
Entweder Ansturz oder konstante Daten beim Abspielen...

Gruß
Andreas

Code: Alles auswählen

EnableExplicit

XIncludeFile "libzplay_header.pbi"
XIncludeFile "zplay_includes.pbi"

 Define dat.s
 Define stat.TStreamStatus, fPlay, hZPlay 
 Define *links, *rechts
 
 dat="test.wav"
  
 If libzplay_LoadDLL() 
  If dat
   
   hZPlay = CreateZPlay()
  
   If hZPlay
         
     If zplay_OpenFile(hZPlay, @dat, #sfWav)
       zplay_Play(hZPlay)
     EndIf
     
     Repeat
       ;zplay_GetVUData(hZPlay, *links, *rechts)      ;ERROR  Schreibfehler an der Adresse 0
       zplay_GetVUData(hZPlay, @*links, @*rechts)  ;keine Änderung der Werte von links und rechts
       Debug @*links
       
       zplay_GetStatus(hZPlay, stat)
       Delay(150)
     Until Not stat\fPlay  
     
     zplay_Close(hZPlay)
     zplay_DestroyZPlay(hZPlay)
     
   EndIf
 EndIf
EndIf 
 
End


zplay_includes.pbi :

Code: Alles auswählen

;************************************************************
;Generiert mit PureDLLHelper am 05.05.12
Prototype  CreateZPlay()
Prototype  zplay_AddFile(a, b, c)
Prototype  zplay_AddFileW(a, b, c)
Prototype  zplay_Close(a)
Prototype  zplay_CreateZPlay()
Prototype  zplay_DestroyZPlay(a)
Prototype  zplay_DetectBPM(a, b)
Prototype  zplay_DetectFileBPM(a, b, c, d)
Prototype  zplay_DetectFileBPMW(a, b, c, d)
Prototype  zplay_DrawFFTGraphOnHDC(a, b, c, d, e, f)
Prototype  zplay_DrawFFTGraphOnHWND(a, b, c, d, e, f)
Prototype  zplay_EnableEcho(a, b)
Prototype  zplay_EnableEqualizer(a, b)
Prototype  zplay_EnumerateWaveOut(a)
Prototype  zplay_GetBitrate(a, b)
Prototype  zplay_GetDynamicStreamLoad(a, b)
Prototype  zplay_GetEchoParam(a, b, c)
Prototype  zplay_GetEqualizerBandGain(a, b)
Prototype  zplay_GetEqualizerParam(a, b, c, d)
Prototype  zplay_GetEqualizerPoints(a, b, c)
Prototype  zplay_GetEqualizerPreampGain(a)
Prototype  zplay_GetError(a)
Prototype  zplay_GetErrorW(a)
Prototype  zplay_GetFFTData(a, b, c, d, e, f, g, h, i)
Prototype  zplay_GetFFTGraphParam(a, b)
Prototype  zplay_GetFileFormat(a, b)
Prototype  zplay_GetFileFormatW(a, b)
Prototype  zplay_GetMasterVolume(a, b, c)
Prototype  zplay_GetPitch(a)
Prototype  zplay_GetPlayerVolume(a, b, c)
Prototype  zplay_GetPosition(a, b)
Prototype  zplay_GetRate(a)
Prototype  zplay_GetSettings(a, b)
Prototype  zplay_GetStatus(a, b)
Prototype  zplay_GetStreamInfo(a, b)
Prototype  zplay_GetStreamInfoW(a, b)
Prototype  zplay_GetTempo(a)
Prototype  zplay_GetVUData(a, b, c)
Prototype  zplay_GetVersion(a)
Prototype  zplay_GetWaveOutInfo(a, b, c)
Prototype  zplay_GetWaveOutInfoW(a, b, c)
Prototype  zplay_IsStreamDataFree(a, b)
Prototype  zplay_LoadFileID3(a, b, c, d, e)
Prototype  zplay_LoadFileID3W(a, b, c, d, e)
Prototype  zplay_LoadID3(a, b, c)
Prototype  zplay_LoadID3W(a, b, c)
Prototype  zplay_MixChannels(a, b, c, d)
Prototype  zplay_OpenFile(a, b, c)
Prototype  zplay_OpenFileW(a, b, c)
Prototype  zplay_OpenStream(a, b, c, d, e, f)
Prototype  zplay_Pause(a)
Prototype  zplay_Play(a)
Prototype  zplay_PlayLoop(a, b, c, d, e, f, g)
Prototype  zplay_PushDataToStream(a, b, c)
Prototype  zplay_Resume(a)
Prototype  zplay_ReverseMode(a, b)
Prototype  zplay_Seek(a, b, c, d)
Prototype  zplay_SetCallbackFunc(a, b, c, d)
Prototype  zplay_SetEchoParam(a, b, c)
Prototype  zplay_SetEqualizerBandGain(a, b, c)
Prototype  zplay_SetEqualizerParam(a, b, c, d)
Prototype  zplay_SetEqualizerPoints(a, b, c)
Prototype  zplay_SetEqualizerPreampGain(a, b)
Prototype  zplay_SetFFTGraphParam(a, b, c)
Prototype  zplay_SetMasterVolume(a, b, c)
Prototype  zplay_SetPitch(a, b)
Prototype  zplay_SetPlayerVolume(a, b, c)
Prototype  zplay_SetRate(a, b)
Prototype  zplay_SetSettings(a, b, c)
Prototype  zplay_SetTempo(a, b)
Prototype  zplay_SetWaveOutDevice(a, b)
Prototype  zplay_SlideVolume(a, b, c, d, e, f, g, h, i)
Prototype  zplay_StereoCut(a, b, c, d)
Prototype  zplay_Stop(a)
Prototype  zplay_memcpy(a, b, c)
Prototype  zplay_memmove(a, b, c)
Prototype  zplay_memset(a, b, c)
Prototype  zplay_strcpy(a, b)
Prototype  zplay_strlen(a)
Prototype  zplay_wcscpy(a, b)
Prototype  zplay_wcslen(a)
Prototype  zplay_LoadID3Ex(a, b, c)
Prototype  zplay_LoadID3ExW(a, b, c)
Prototype  zplay_LoadFileID3Ex(a, b, c, d, e)
Prototype  zplay_LoadFileID3ExW(a, b, c, d, e)
Prototype  zplay_DrawBitmapToHDC(a, b, c, d, e, f, g)
Prototype  zplay_DrawBitmapToHWND(a, b, c, d, e, f, g)
Prototype  zplay_EnumerateWaveIn(a)
Prototype  zplay_GetWaveInInfo(a, b, c)
Prototype  zplay_GetWaveInInfoW(a, b, c)
Prototype  zplay_SetWaveInDevice(a, b)
Prototype  zplay_SetWaveOutFile(a, b, c, d)
Prototype  zplay_SetWaveOutFileW(a, b, c, d)

Global CreateZPlay.CreateZPlay
Global zplay_AddFile.zplay_AddFile
Global zplay_AddFileW.zplay_AddFileW
Global zplay_Close.zplay_Close
Global zplay_CreateZPlay.zplay_CreateZPlay
Global zplay_DestroyZPlay.zplay_DestroyZPlay
Global zplay_DetectBPM.zplay_DetectBPM
Global zplay_DetectFileBPM.zplay_DetectFileBPM
Global zplay_DetectFileBPMW.zplay_DetectFileBPMW
Global zplay_DrawFFTGraphOnHDC.zplay_DrawFFTGraphOnHDC
Global zplay_DrawFFTGraphOnHWND.zplay_DrawFFTGraphOnHWND
Global zplay_EnableEcho.zplay_EnableEcho
Global zplay_EnableEqualizer.zplay_EnableEqualizer
Global zplay_EnumerateWaveOut.zplay_EnumerateWaveOut
Global zplay_GetBitrate.zplay_GetBitrate
Global zplay_GetDynamicStreamLoad.zplay_GetDynamicStreamLoad
Global zplay_GetEchoParam.zplay_GetEchoParam
Global zplay_GetEqualizerBandGain.zplay_GetEqualizerBandGain
Global zplay_GetEqualizerParam.zplay_GetEqualizerParam
Global zplay_GetEqualizerPoints.zplay_GetEqualizerPoints
Global zplay_GetEqualizerPreampGain.zplay_GetEqualizerPreampGain
Global zplay_GetError.zplay_GetError
Global zplay_GetErrorW.zplay_GetErrorW
Global zplay_GetFFTData.zplay_GetFFTData
Global zplay_GetFFTGraphParam.zplay_GetFFTGraphParam
Global zplay_GetFileFormat.zplay_GetFileFormat
Global zplay_GetFileFormatW.zplay_GetFileFormatW
Global zplay_GetMasterVolume.zplay_GetMasterVolume
Global zplay_GetPitch.zplay_GetPitch
Global zplay_GetPlayerVolume.zplay_GetPlayerVolume
Global zplay_GetPosition.zplay_GetPosition
Global zplay_GetRate.zplay_GetRate
Global zplay_GetSettings.zplay_GetSettings
Global zplay_GetStatus.zplay_GetStatus
Global zplay_GetStreamInfo.zplay_GetStreamInfo
Global zplay_GetStreamInfoW.zplay_GetStreamInfoW
Global zplay_GetTempo.zplay_GetTempo
Global zplay_GetVUData.zplay_GetVUData
Global zplay_GetVersion.zplay_GetVersion
Global zplay_GetWaveOutInfo.zplay_GetWaveOutInfo
Global zplay_GetWaveOutInfoW.zplay_GetWaveOutInfoW
Global zplay_IsStreamDataFree.zplay_IsStreamDataFree
Global zplay_LoadFileID3.zplay_LoadFileID3
Global zplay_LoadFileID3W.zplay_LoadFileID3W
Global zplay_LoadID3.zplay_LoadID3
Global zplay_LoadID3W.zplay_LoadID3W
Global zplay_MixChannels.zplay_MixChannels
Global zplay_OpenFile.zplay_OpenFile
Global zplay_OpenFileW.zplay_OpenFileW
Global zplay_OpenStream.zplay_OpenStream
Global zplay_Pause.zplay_Pause
Global zplay_Play.zplay_Play
Global zplay_PlayLoop.zplay_PlayLoop
Global zplay_PushDataToStream.zplay_PushDataToStream
Global zplay_Resume.zplay_Resume
Global zplay_ReverseMode.zplay_ReverseMode
Global zplay_Seek.zplay_Seek
Global zplay_SetCallbackFunc.zplay_SetCallbackFunc
Global zplay_SetEchoParam.zplay_SetEchoParam
Global zplay_SetEqualizerBandGain.zplay_SetEqualizerBandGain
Global zplay_SetEqualizerParam.zplay_SetEqualizerParam
Global zplay_SetEqualizerPoints.zplay_SetEqualizerPoints
Global zplay_SetEqualizerPreampGain.zplay_SetEqualizerPreampGain
Global zplay_SetFFTGraphParam.zplay_SetFFTGraphParam
Global zplay_SetMasterVolume.zplay_SetMasterVolume
Global zplay_SetPitch.zplay_SetPitch
Global zplay_SetPlayerVolume.zplay_SetPlayerVolume
Global zplay_SetRate.zplay_SetRate
Global zplay_SetSettings.zplay_SetSettings
Global zplay_SetTempo.zplay_SetTempo
Global zplay_SetWaveOutDevice.zplay_SetWaveOutDevice
Global zplay_SlideVolume.zplay_SlideVolume
Global zplay_StereoCut.zplay_StereoCut
Global zplay_Stop.zplay_Stop
Global zplay_memcpy.zplay_memcpy
Global zplay_memmove.zplay_memmove
Global zplay_memset.zplay_memset
Global zplay_strcpy.zplay_strcpy
Global zplay_strlen.zplay_strlen
Global zplay_wcscpy.zplay_wcscpy
Global zplay_wcslen.zplay_wcslen
Global zplay_LoadID3Ex.zplay_LoadID3Ex
Global zplay_LoadID3ExW.zplay_LoadID3ExW
Global zplay_LoadFileID3Ex.zplay_LoadFileID3Ex
Global zplay_LoadFileID3ExW.zplay_LoadFileID3ExW
Global zplay_DrawBitmapToHDC.zplay_DrawBitmapToHDC
Global zplay_DrawBitmapToHWND.zplay_DrawBitmapToHWND
Global zplay_EnumerateWaveIn.zplay_EnumerateWaveIn
Global zplay_GetWaveInInfo.zplay_GetWaveInInfo
Global zplay_GetWaveInInfoW.zplay_GetWaveInInfoW
Global zplay_SetWaveInDevice.zplay_SetWaveInDevice
Global zplay_SetWaveOutFile.zplay_SetWaveOutFile
Global zplay_SetWaveOutFileW.zplay_SetWaveOutFileW

Procedure.i libzplay_LoadDLL()
  Protected hDLL.i

  hDLL = OpenLibrary(#PB_Any, "libzplay.dll")
  If hDLL <> 0
    CreateZPlay = GetFunction(hDLL, "CreateZPlay")
    zplay_AddFile = GetFunction(hDLL, "zplay_AddFile")
    zplay_AddFileW = GetFunction(hDLL, "zplay_AddFileW")
    zplay_Close = GetFunction(hDLL, "zplay_Close")
    zplay_CreateZPlay = GetFunction(hDLL, "zplay_CreateZPlay")
    zplay_DestroyZPlay = GetFunction(hDLL, "zplay_DestroyZPlay")
    zplay_DetectBPM = GetFunction(hDLL, "zplay_DetectBPM")
    zplay_DetectFileBPM = GetFunction(hDLL, "zplay_DetectFileBPM")
    zplay_DetectFileBPMW = GetFunction(hDLL, "zplay_DetectFileBPMW")
    zplay_DrawFFTGraphOnHDC = GetFunction(hDLL, "zplay_DrawFFTGraphOnHDC")
    zplay_DrawFFTGraphOnHWND = GetFunction(hDLL, "zplay_DrawFFTGraphOnHWND")
    zplay_EnableEcho = GetFunction(hDLL, "zplay_EnableEcho")
    zplay_EnableEqualizer = GetFunction(hDLL, "zplay_EnableEqualizer")
    zplay_EnumerateWaveOut = GetFunction(hDLL, "zplay_EnumerateWaveOut")
    zplay_GetBitrate = GetFunction(hDLL, "zplay_GetBitrate")
    zplay_GetDynamicStreamLoad = GetFunction(hDLL, "zplay_GetDynamicStreamLoad")
    zplay_GetEchoParam = GetFunction(hDLL, "zplay_GetEchoParam")
    zplay_GetEqualizerBandGain = GetFunction(hDLL, "zplay_GetEqualizerBandGain")
    zplay_GetEqualizerParam = GetFunction(hDLL, "zplay_GetEqualizerParam")
    zplay_GetEqualizerPoints = GetFunction(hDLL, "zplay_GetEqualizerPoints")
    zplay_GetEqualizerPreampGain = GetFunction(hDLL, "zplay_GetEqualizerPreampGain")
    zplay_GetError = GetFunction(hDLL, "zplay_GetError")
    zplay_GetErrorW = GetFunction(hDLL, "zplay_GetErrorW")
    zplay_GetFFTData = GetFunction(hDLL, "zplay_GetFFTData")
    zplay_GetFFTGraphParam = GetFunction(hDLL, "zplay_GetFFTGraphParam")
    zplay_GetFileFormat = GetFunction(hDLL, "zplay_GetFileFormat")
    zplay_GetFileFormatW = GetFunction(hDLL, "zplay_GetFileFormatW")
    zplay_GetMasterVolume = GetFunction(hDLL, "zplay_GetMasterVolume")
    zplay_GetPitch = GetFunction(hDLL, "zplay_GetPitch")
    zplay_GetPlayerVolume = GetFunction(hDLL, "zplay_GetPlayerVolume")
    zplay_GetPosition = GetFunction(hDLL, "zplay_GetPosition")
    zplay_GetRate = GetFunction(hDLL, "zplay_GetRate")
    zplay_GetSettings = GetFunction(hDLL, "zplay_GetSettings")
    zplay_GetStatus = GetFunction(hDLL, "zplay_GetStatus")
    zplay_GetStreamInfo = GetFunction(hDLL, "zplay_GetStreamInfo")
    zplay_GetStreamInfoW = GetFunction(hDLL, "zplay_GetStreamInfoW")
    zplay_GetTempo = GetFunction(hDLL, "zplay_GetTempo")
    zplay_GetVUData = GetFunction(hDLL, "zplay_GetVUData")
    zplay_GetVersion = GetFunction(hDLL, "zplay_GetVersion")
    zplay_GetWaveOutInfo = GetFunction(hDLL, "zplay_GetWaveOutInfo")
    zplay_GetWaveOutInfoW = GetFunction(hDLL, "zplay_GetWaveOutInfoW")
    zplay_IsStreamDataFree = GetFunction(hDLL, "zplay_IsStreamDataFree")
    zplay_LoadFileID3 = GetFunction(hDLL, "zplay_LoadFileID3")
    zplay_LoadFileID3W = GetFunction(hDLL, "zplay_LoadFileID3W")
    zplay_LoadID3 = GetFunction(hDLL, "zplay_LoadID3")
    zplay_LoadID3W = GetFunction(hDLL, "zplay_LoadID3W")
    zplay_MixChannels = GetFunction(hDLL, "zplay_MixChannels")
    zplay_OpenFile = GetFunction(hDLL, "zplay_OpenFile")
    zplay_OpenFileW = GetFunction(hDLL, "zplay_OpenFileW")
    zplay_OpenStream = GetFunction(hDLL, "zplay_OpenStream")
    zplay_Pause = GetFunction(hDLL, "zplay_Pause")
    zplay_Play = GetFunction(hDLL, "zplay_Play")
    zplay_PlayLoop = GetFunction(hDLL, "zplay_PlayLoop")
    zplay_PushDataToStream = GetFunction(hDLL, "zplay_PushDataToStream")
    zplay_Resume = GetFunction(hDLL, "zplay_Resume")
    zplay_ReverseMode = GetFunction(hDLL, "zplay_ReverseMode")
    zplay_Seek = GetFunction(hDLL, "zplay_Seek")
    zplay_SetCallbackFunc = GetFunction(hDLL, "zplay_SetCallbackFunc")
    zplay_SetEchoParam = GetFunction(hDLL, "zplay_SetEchoParam")
    zplay_SetEqualizerBandGain = GetFunction(hDLL, "zplay_SetEqualizerBandGain")
    zplay_SetEqualizerParam = GetFunction(hDLL, "zplay_SetEqualizerParam")
    zplay_SetEqualizerPoints = GetFunction(hDLL, "zplay_SetEqualizerPoints")
    zplay_SetEqualizerPreampGain = GetFunction(hDLL, "zplay_SetEqualizerPreampGain")
    zplay_SetFFTGraphParam = GetFunction(hDLL, "zplay_SetFFTGraphParam")
    zplay_SetMasterVolume = GetFunction(hDLL, "zplay_SetMasterVolume")
    zplay_SetPitch = GetFunction(hDLL, "zplay_SetPitch")
    zplay_SetPlayerVolume = GetFunction(hDLL, "zplay_SetPlayerVolume")
    zplay_SetRate = GetFunction(hDLL, "zplay_SetRate")
    zplay_SetSettings = GetFunction(hDLL, "zplay_SetSettings")
    zplay_SetTempo = GetFunction(hDLL, "zplay_SetTempo")
    zplay_SetWaveOutDevice = GetFunction(hDLL, "zplay_SetWaveOutDevice")
    zplay_SlideVolume = GetFunction(hDLL, "zplay_SlideVolume")
    zplay_StereoCut = GetFunction(hDLL, "zplay_StereoCut")
    zplay_Stop = GetFunction(hDLL, "zplay_Stop")
    zplay_memcpy = GetFunction(hDLL, "zplay_memcpy")
    zplay_memmove = GetFunction(hDLL, "zplay_memmove")
    zplay_memset = GetFunction(hDLL, "zplay_memset")
    zplay_strcpy = GetFunction(hDLL, "zplay_strcpy")
    zplay_strlen = GetFunction(hDLL, "zplay_strlen")
    zplay_wcscpy = GetFunction(hDLL, "zplay_wcscpy")
    zplay_wcslen = GetFunction(hDLL, "zplay_wcslen")
    zplay_LoadID3Ex = GetFunction(hDLL, "zplay_LoadID3Ex")
    zplay_LoadID3ExW = GetFunction(hDLL, "zplay_LoadID3ExW")
    zplay_LoadFileID3Ex = GetFunction(hDLL, "zplay_LoadFileID3Ex")
    zplay_LoadFileID3ExW = GetFunction(hDLL, "zplay_LoadFileID3ExW")
    zplay_DrawBitmapToHDC = GetFunction(hDLL, "zplay_DrawBitmapToHDC")
    zplay_DrawBitmapToHWND = GetFunction(hDLL, "zplay_DrawBitmapToHWND")
    zplay_EnumerateWaveIn = GetFunction(hDLL, "zplay_EnumerateWaveIn")
    zplay_GetWaveInInfo = GetFunction(hDLL, "zplay_GetWaveInInfo")
    zplay_GetWaveInInfoW = GetFunction(hDLL, "zplay_GetWaveInInfoW")
    zplay_SetWaveInDevice = GetFunction(hDLL, "zplay_SetWaveInDevice")
    zplay_SetWaveOutFile = GetFunction(hDLL, "zplay_SetWaveOutFile")
    zplay_SetWaveOutFileW = GetFunction(hDLL, "zplay_SetWaveOutFileW")

    ProcedureReturn hDLL
  EndIf

  ProcedureReturn #False
EndProcedure

libzplay_header.pbi :

Code: Alles auswählen

Enumeration ;TStreamFormat
  #sfUnknown
  #sfMp3
  #sfOgg
  #sfWav
  #sfPCM
  #sfFLAC
  #sfFLACOgg
  #sfAC3
  #sfAacADTS
  #sfWaveIn
  #sfAutodetect = 1000
EndEnumeration

#WaveOutWaveMapper = $FFFFFFFF
#WaveInWaveMapper = $FFFFFFFF

Enumeration ;TFFTGraphSize
  #FFTGraphMinWidht = 100
  #FFTGraphMinHeight = 60
EndEnumeration

Enumeration ;TMBPDetectionMethos
  #dmPeaks
  #dmAutoCorrelation
EndEnumeration

Enumeration ;TFFTGraphHorizontalScale
  #gsLogarithmic
  #gsLinear
EndEnumeration

Enumeration ;TSeekMethod
  #smFromBeginning = 1
  #smFromEnd = 2
  #smFromCurrendForward = 4
  #smFromCurrentBackward = 8
EndEnumeration

Enumeration ;TTimeFormat
  #tfMillisecond = 1
  #tfSecond = 2
  #tfHMS = 4
  #tfSamples = 8
EndEnumeration

Enumeration ;TWaveOutForma
  #format_invalid = 0
  #format_11khz_8bit_mono = 1
  #format_11khz_8bit_stereo = 2
  #format_11khz_16bit_mono = 4
  #format_11khz_16bit_stereo = 8
  #format_22khz_8bit_mono = 16
  #format_22khz_8bit_stereo = 32
  #format_22khz_16bit_mono = 64
  #format_22khz_16bit_stereo = 128
  #format_44khz_8bit_mono = 256
  #format_44khz_8bit_stereo = 512
  #format_44khz_16bit_mono = 1024
  #format_44khz_16bit_stereo = 2048
EndEnumeration

Enumeration ;TWaveOutFunctionality
  #supportPitchControl = 1
  #supportPlaybackRateControl = 2
  #supportVolumeControl = 4
  #supportSeparateLeftRightVolume = 8
  #supportSync = 16
  #supportSampleAccuratePosition = 32
  #supportDirectSound = 6
EndEnumeration

Enumeration ;TID3Version
  #id3Version1 = 1
  #id3Version2 = 2
EndEnumeration

Enumeration ;TFFTGraphType
  #gtLinesLeftOnTop
  #gtLinesRightOnTop
  #gtAreaLeftOnTop
  #gtAreaRightOnTop
  #gtBarsLeftOnTop
  #gtBarsRightOnTop
  #gtSpectrum
EndEnumeration

Enumeration ;TFFTWindow
  #fwRectangular = 1
  #fwHamming
  #fwHann
  #fwCosine
  #fwLanczos
  #fwBartlett
  #fwTriangular
  #fwGauss
  #fwBartlettHann
  #fwBlackman
  #fwNuttall
  #fwBlackmanHarris
  #fwBlackmanNuttall
  #fwFlatTop
EndEnumeration

Enumeration ;TFFTGraphParamID
  #gpFFTPoints = 1
  #gpGraphType
  #gpWindow
  #gpHorizontalScale
  #gpSubgrid
  #gpTransparency
  #gpFrequencyScaleVisible
  #gpDecibelScaleVisible
  #gpFrequencyGridVisible
  #gpDecibelGridVisible
  #gpBgBitmapVisible
  #gpBgBitmapHandle
  #gpColor1
  #gpColor2
  #gpColor3
  #gpColor4
  #gpColor5
  #gpColor6
  #gpColor7
  #gpColor8
  #gpColor9
  #gpColor10
  #gpColor11
  #gpColor12
  #gpColor13
  #gpColor14
  #gpColor15
  #gpColor16
EndEnumeration

Enumeration ;TCallbackMessage
  #MsgStopAsync = 1
  #MsgPlayAsync = 2
  #MsgEnterLoopAsync = 4
  #MsgExitLoopAsync = 8
  #MsgEnterVolumeSlideAsync = 16
  #MsgExitVolumeSlideAsync = 32
  #MsgStreamBufferDoneAsync = 64
  #MsgStreamNeedMoreDataAsync = 128
  #MsgNextSongAsync = 256
  #MsgStop = 65536
  #MsgPlay = 131072
  #MsgEnterLoop = 262144
  #MsgExitLoop = 524288
  #MsgEnterVolumeSlide = 1048576
  #MsgExitVolumeSlide = 2097152
  #MsgStreamBufferDone = 4194304
  #MsgStreamNeedMoreData = 8388608
  #MsgNextSong = 16777216
  #MsgWaveBuffer = 33554432
EndEnumeration

Prototype TCallbackFunc(*instance, *user_data, message, param1, param2)

Enumeration ;TSettingID
  #sidWaveBufferSize = 1
  #sidAccurateLength
  #sidAccurateSeek
  #sidSamplerate
  #sidChannelNumber
  #sidBitPerSample
  #sidBigEndian
  #sidWaveInBufferSize
EndEnumeration

Structure TStreamHMSTime
  hour.l
  minute.l
  second.l
  millisecond.l
EndStructure

Structure TStreamTime
  sec.l
  ms.l
  samples.l
  hms.TStreamHMSTime
EndStructure

Structure TEchoEffect
  nLeftDelay.l
  nLeftSrcVolume.l
  nLeftEchoVolume.l
  nRightDelay.l
  nRightSrcVolume.l
  nRightEchoVolume.l
EndStructure

Structure TWaveOutInfo
  ManufacturerID.l
  ProductID.l
  DriverVersion.l
  Formats.l
  Channels.l
  Support.l
  ProductName.s
EndStructure

Structure TWaveOutInfoW
  ManufacturerID.l
  ProductID.l
  DriverVersion.l
  Formats.l
  Channels.l
  Support.l
  ProductName.s
EndStructure

Structure TWaveInInfo
  ManufacturerID.l
  ProductID.l
  DriverVersion.l
  Formats.l
  Channels.l
  ProductName.s
EndStructure

Structure TWaveInInfoW
  ManufacturerID.l
  ProductID.l
  DriverVersion.l
  Formats.l
  Channels.l
  ProductName.s
EndStructure

Structure TStreamStatus
  fPlay.l
  fPause.l
  fEcho.l
  fEqualizer.l
  fVocalCut.l
  fSideCut.l
  fChannelMix.l
  fSlideVolume.l
  nLoop.l
  fReverse.l
  nSongIndex.l
  nSongsInQueue.l
EndStructure

Structure TID3Info
  Title.s
  Artist.s
  Album.s
  Year.s
  Comment.s
  TrackNum.s
  Genre.s
EndStructure

Structure TID3Picture
  PicturePresent.l
  CanDrawPicture.l
  MIMEType.s
  PictureType.l
  Description.s
  *PictureData
  PictureDataSize.l
  *hBitmap
  Width.l
  Height.l
  reserved.a[128]
EndStructure

Structure TID3PictureW
  PicturePresent.l
  CanDrawPicture.l
  MIMEType.s
  PictureType.l
  Description.s
  *PictureData
  PictureDataSize.l
  *hBitmap
  Width.l
  Height.l
  reserved.u[128]
EndStructure

Structure TID3InfoEx
  Title.s
  Artist.s
  Album.s
  Year.s
  Comment.s
  TrackNum.s
  Genre.s
  AlbumArtist.s
  Composer.s
  OriginalArtist.s
  Copyright.s
  URL.s
  Encoder.s
  Publisher.s
  BPM.l
  Picture.TID3Picture
  reserved.a[128]
EndStructure

Structure TID3InfoExW
  Title.s
  Artist.s
  Album.s
  Year.s
  Comment.s
  TrackNum.s
  Genre.s
  AlbumArtist.s
  Composer.s
  OriginalArtist.s
  Copyright.s
  URL.s
  Encoder.s
  Publisher.s
  BPM.l
  Picture.TID3PictureW
  reserved.u[128]
EndStructure

Structure TID3InfoW
  Title.s
  Artist.s
  Album.s
  Year.s
  Comment.s
  TrackNum.s
  Genre.s
EndStructure

Structure TStreamInfo
  SamplingRate.l
  ChannelNumber.l
  VBR.l
  Bitrate.l
  Length.TStreamTime
 *Description.s ;muss Zeiger sein!
EndStructure

Structure TStreamInfoW
  SamplingRate.l
  ChannelNumber.l
  VBR.l
  Bitrate.l
  Length.TStreamTime
 *Description.s
EndStructure

Structure TStreamLoadInfo
  NumberOfBuffers.l
  NumberOfBytes.l
EndStructure
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Wie LibZPlay Multimedia-DLL mit PB verwenden ?

Beitrag von ts-soft »

So gehts (angepasst an meine Import Version):

Code: Alles auswählen

EnableExplicit

XIncludeFile "libzplay_include.pbi"

 Define dat.s
 Define stat.TStreamStatus, fPlay, hZPlay
 Define links, rechts
 
 dat="test.wav"
 
  If dat
   
   hZPlay = CreateZPlay()
 
   If hZPlay
         
     If zplay_OpenFile(hZPlay, dat, #sfWav)
       zplay_Play(hZPlay)
     EndIf
     
     Repeat
       ;zplay_GetVUData(hZPlay, *links, *rechts)      ;ERROR  Schreibfehler an der Adresse 0
       zplay_GetVUData(hZPlay, @links, @rechts)  ;keine Änderung der Werte von links und rechts
       Debug links
       
       zplay_GetStatus(hZPlay, stat)
       Delay(150)
     Until Not stat\fPlay 
     
     zplay_Close(hZPlay)
     zplay_DestroyZPlay(hZPlay)
     
   EndIf
 EndIf
 
End
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
andy7
Beiträge: 6
Registriert: 02.03.2012 14:11
Computerausstattung: WinXP prof - PB 4.6 - PureResize460

Re: Wie LibZPlay Multimedia-DLL mit PB verwenden ?

Beitrag von andy7 »

Hallo Thomas,
so geht es auch bei mir! Ich hätte schwören können, es auch schon so
versucht zu haben...

Nochmal vielen Dank!
Andreas
Antworten