Announcement

Collapse
No announcement yet.

PlaySound with resource...

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Michael Mattias
    replied
    I notice you did not interrogate the return from PlaySnd; does it return 'success'?

    Here is the code I use to play sounds from resources (snipped from an application and obviously not complete)..

    Code:
      Stat = PlaySound (BYVAL pResource, hInst, uFlags)
         ' If a sound was already playing, this returns false but lasterror = %NO_ERROR
    
         IF ISTRUE(Stat) THEN         ' success on the play
            INCR J                    ' next time we play the next sound file
         ELSE                         ' either failed or a sound was already playing
            LastError = GetLastError
            IF LastError <>  %NO_ERROR THEN   ' OOPS! Errored out for reason other than a sound already playing!
              MSGBOX "PlaySoundFailed with error " & STR$(LastError)
              EXIT DO
            END IF
         END IF


    ------------------
    Michael Mattias
    Racine WI USA
    [email protected]

    Leave a comment:


  • Scott Turchin
    replied
    Lance that sounds like a software company saying "We're getting ready to release something" *Grin*...

    I don't know if I can help but here's my source that I use when playing from resources, my first guess would be that you are one off on your equates in your .BAS file, from what you are in the .RC file..


    Code:
    '----------------------------------------------------------------------------------------
    Function PlayWavFromResource(hInstance As Long, WaveName As String, WaveType As String)Export As Long
    'Function PlayWavFromResource(hInstance As Long, WaveName As Asciiz, WaveType As Asciiz)Export As Long
    Local hRes As Long
    Local lpWav As Byte Ptr
    Local Wave1 As Asciiz * 10
    Local Wav1 As Asciiz * 10
    Wave1 = WaveName
    Wav1  = WaveType
    hRes = FindResource (hInstance, Wave1, Wav1)
    If hRes Then
        lpWav = LockResource (LoadResource (hInstance, hRes))
        If lpWav Then Function = PlaySound(ByVal lpWav, hInstance, %SND_MEMORY Or %SND_ASYNC)
    End If
    End Function

    ------------------
    Scott
    mailto:[email protected][email protected]</A>

    Leave a comment:


  • Lance Edmonds
    replied
    Things are *very* busy right now, so to save time, can you email these files directly to me and I'll take a look? Thanks!


    ------------------
    Lance
    PowerBASIC Support
    mailto:[email protected][email protected]</A>

    Leave a comment:


  • mark smit
    Guest replied
    Hello Lance!

    I'm not sure how to post source code in here so I'll just type it in manually. So here it is...

    BOUNCE.RC
    {
    DUMMY WAVE BONK.WAV
    BOING WAVE BOING.WAV
    BONK WAVE BONK.WAV
    }

    BOUNCE.BAS
    {
    #COMPILE EXE
    #INCLUDE "WIN32API.INC"
    #RESOURCE "BOUNCE.PBR"

    function pbmain() as long
    dim hwnd as long

    dialog new %HWND_DESKTOP, _
    "boing", _
    %CW_USEDEFAULT, _
    %CW_USEDEFAULT, _
    256, _
    256, _
    %WS_SYSMENU to hwnd

    dialog show modal hwnd

    call PlaySound("BOING", _
    GetWindowLong(hwnd, %GWL_HINSTANCE), _
    %SND_RESOURCE or %SND_ASYNC)

    end function
    }


    BOING.WAV is 7832 bytes
    BONK.WAV is 2252 bytes
    BOUNCE.RES is 12496 bytes
    BOUNCE.PBR is 12636 bytes
    BOUNCE.EXE is 20992 bytes

    I am running Windows 2000 Pro (2195). The code above is what I have been using to test out wether or not the code really works.
    I did write a small chunk of code to try this out but as it turns out both my original source and the code chunk do the same thing. As of last night the "BONK" wave would play fine but the "BOING" wave would only play once?! (This is also bases on repeated calls to play the wave again)

    Cheers!


    ------------------

    Leave a comment:


  • Lance Edmonds
    replied
    Not a problem I've heard of before, so we'll have to start at the beginning to track down the cause...

    Is that the complete RC file, or is there other components/data in it?
    How big are the resultant RES/PBR files?
    Which platform did you try this on?
    Did you strip down everything in your code that seems unrelated or did you try writing a small app that does nothing but try to play the wav file?

    It is a curious problem!



    ------------------
    Lance
    PowerBASIC Support
    mailto:[email protected][email protected]</A>

    Leave a comment:


  • mark smit
    Guest started a topic PlaySound with resource...

    PlaySound with resource...

    Hello all...

    I have noticed a really wierd problem and i'm not sure if its me or not. I have two wave files in my resource file...

    bounce.rc
    ---------

    BOING WAVE BOING.WAV
    BONK WAVE BONK.WAV


    if I use PlaySound("BOING", hInstance, %SND_RESOURCE) nothing happens but PlaySound("BONK", hInstance, %SND_RESOURCE) does work. I can get the first file "BOING" to play if I modify the resource file like the following...

    bounce.rc
    ---------

    DUMMY WAVE BOING.WAV
    BOING WAVE BOING.WAV
    BONK WAVE BONK.WAV

    I dont understand why putting a dummy resource in first would suddenly make both wave files play properly. Can anybody explain why this would happen?

    Cheers!

    p.s. I should also note that this happens even if I use numbers for the identifiers instead of names..."100/101,BOING/BONK".

    [This message has been edited by mark smit (edited April 23, 2000).]
Working...
X