[問題] 使用waveout播放wav
小弟之前在mobile上寫WAV錄放等相關程式
因某些因素必須在PC上寫個相似程式
且在有時間限制下希望不要在架構上有太多的改變
所以小弟就重新新增一個project
將code慢慢copy過來
在PDA上
小弟使用waveoutOpen、waveoutPrepareHeader、 waveoutWrite等function
且可以將wav完整播放
然而重新寫在PC上的code....
似乎就遇到了瓶頸
----------------------------------------------------------------------
起初執行時,有error顯示說沒辦法找到coredll.dll
所以在網路上搜尋了waveout的相關資訊.....
在.Net Compact Framework 上需使用"coredll.dll"
而在.Net Framework 上則是用 "winmm.dll"
所以小弟就將code部份作修改
[DllImport("winmm.dll")]
protected static extern Wave.MMSYSERR waveOutOpen
(ref IntPtr phwo, uint uDeviceID, Wave.WAVEFORMATEX pwfx, IntPtr dwCallback,
uint dwInstance, uint fdwOpen);
但在使用waveoutopen時回傳值return了BADFORMAT 或者 INVALPARAM
這是因為waveoutopen 在 winmm 和 coredll 所要input的不相同嗎
還是其他因素?
另外在PINVOKE .net網站上看到
(http://pinvoke.net/default.aspx/winmm/waveOutOpen.html)
[DllImport("winmm.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern uint waveOutOpen
(ref IntPtr hWaveOut, int uDeviceID, ref WAVEFORMATEX lpFormat,
delegateWaveOutProc dwCallback, IntPtr dwInstance, uint dwFlags);
在dwCallback上他是用delegateWaveOutProc宣告
但我不太瞭解delegateWaveOutProc代表的是....?
綜合以上問題
小弟該怎麼去解決呢
希望有前輩能指點一下...感謝!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.220.51.184
→
09/05 23:16, , 1F
09/05 23:16, 1F
→
09/06 14:06, , 2F
09/06 14:06, 2F
推
09/10 21:49, , 3F
09/10 21:49, 3F