發表文章

目前顯示的是 11月, 2010的文章

let's play sound with powerbuilder

最近在用PB10做一些觸控裝置的UI(使用者介面,User Interface),雖然是觸控,不過使用起來的UE(user experience)跟 iPhone、iPad實在也差很多,無怪乎用過 iPhone之類的觸控裝至以後對於PC的各類觸控總覺得就是不喜歡。 題外話結束。 在設計這類的句有觸控介面的程式時除了UI要非常易懂、直覺以外,其他的輔助可能就需要那麼一點了。在設計這個CASE的UI時,尤其是數字鍵盤,如若加個語音提示或是導航,也許會減少許多輸入錯誤的機會。 目前PB10尚未支援 .NET ,所以依然使用API設計。 使用方式不困難,因為Windows就有內建一些標準函式可以用了 首先,定義函式呼叫 Function Long auxGetNumDevs() Library "Winmm.dll" Function Long auxSetVolume (Long uDeviceID , Long dwVolume) Library "Winmm.dll" alias for "auxSetVolume" Function Boolean sndPlaySound(ref String lpszSound , Long fuSound ) Library "Winmm.dll" alias for "sndPlaySoundW" 然後幾個基本常數 Constant Long SND_SYNC = 0 Constant Long SND_ASYNC = 1 Constant Long SND_NODEFAULT = 2 Constant Long SND_LOOP = 8 Constant Long SND_NOSTOP = 16 再來就是呼叫方式了,大部分常用的呼叫方式有兩種:同步 或 非同步(Synchronous / Asynchronous) 同步方式:採用同步方式的話,程序本身必須等待聲音檔撥完才能繼續執行。 ls_wav = "c:\piano.wav" sndPlaySound(ls_wav , SND_SYNC) 非同步方式:當聲音檔案播放時,