acmStreamOpen总是因MMSYSERR_INVALFLAG而失败么? [英] acmStreamOpen always fails with MMSYSERR_INVALFLAG Why?
问题描述
我正在尝试在VB.NET中使用acm API。 acmStreamOpen总是返回
MMSYSERR_INVALFLAG。这就是我如何使用它:
声明是:
声明自动功能acmStreamOpen Lib" MsAcm32.dll" (ByRef phas As IntPtr,
ByVal有As Long,ByRef pwfxSrc As MPEGLAYER3WAVEFORMAT,ByRef pm_wfxDst As
WAVEFORMATEX,ByRef pwfltr As Long,ByRef dwCallback As Long,ByRef
dwinstance As Long,ByVal fdwOpen As Int32)As Int32
这样使用:
res = acmStreamOpen(m_has ,0&,m_MP3wfxSrc,m_wfxDst,0&,0&,0&,
ACM_STREAMOPENF_NONREALTIME)
它返回10,所以无效标志......只有指定的标志是NonRealtime所以
它几乎适用于任何编解码器。我正在尝试从Mp3转换为Wave
(PCM)所以我真的不明白为什么它会失败。有谁可以帮助我吗?我不认为这是一个与.NET相关的错误,但是我在.net组中发帖
无论如何都是这样的。如果确实如此。
谢谢
ThunderMusic
Hi,
I''m trying to use the acm APIs in VB.NET. acmStreamOpen always returns
MMSYSERR_INVALFLAG. Here''s how I use it :
declaration is :
Declare Auto Function acmStreamOpen Lib "MsAcm32.dll" (ByRef phas As IntPtr,
ByVal had As Long, ByRef pwfxSrc As MPEGLAYER3WAVEFORMAT, ByRef pm_wfxDst As
WAVEFORMATEX, ByRef pwfltr As Long, ByRef dwCallback As Long, ByRef
dwinstance As Long, ByVal fdwOpen As Int32) As Int32
Used like this :
res = acmStreamOpen(m_has, 0&, m_MP3wfxSrc, m_wfxDst, 0&, 0&, 0&,
ACM_STREAMOPENF_NONREALTIME)
It returns 10, so Invalid Flag... the only specified flag is NonRealtime so
it should work for almost any codec. I''m trying to convert from Mp3 to Wave
(PCM) so I really don''t see why it fails. Can someone help me please? I
don''t think this is a .NET related error, but I''m posting in .net groups
anyway, in case it does.
Thanks
ThunderMusic
推荐答案
ThunderMusic写道:
ThunderMusic wrote:
我正在尝试在VB.NET中使用acm API。 acmStreamOpen
始终返回MMSYSERR_INVALFLAG。这是我如何使用它:
声明是:
声明自动功能acmStreamOpen Lib" MsAcm32.dll"
(ByRef phas As IntPtr,ByVal有了As Long,ByRef pwfxSrc
作为MPEGLAYER3WAVEFORMAT,ByRef pm_wfxDst作为WAVEFORMATEX,
ByRef pwfltr As Long,ByRef dwCallback As Long,ByRef
dwinstance As Long,ByVal fdwOpen As Int32)As Int32
像这样使用:
res = acmStreamOpen(m_has,0&,m_MP3wfxSrc,m_wfxDst,0&,
0&,0&,ACM_STREAMOPENF_NONREALTIME)
I''m trying to use the acm APIs in VB.NET. acmStreamOpen
always returns MMSYSERR_INVALFLAG. Here''s how I use it :
declaration is :
Declare Auto Function acmStreamOpen Lib "MsAcm32.dll"
(ByRef phas As IntPtr, ByVal had As Long, ByRef pwfxSrc
As MPEGLAYER3WAVEFORMAT, ByRef pm_wfxDst As WAVEFORMATEX,
ByRef pwfltr As Long, ByRef dwCallback As Long, ByRef
dwinstance As Long, ByVal fdwOpen As Int32) As Int32
Used like this :
res = acmStreamOpen(m_has, 0&, m_MP3wfxSrc, m_wfxDst, 0&,
0&, 0&, ACM_STREAMOPENF_NONREALTIME)
试试这个:
声明自动功能acmStreamOpen Lib" MsAcm32.dll"
(ByRef phas As IntPtr,
ByVal有As IntPtr,
ByRef pwfxSrc作为MPEGLAYER3WAVEFORMAT,
ByRef pm_wfxDst作为WAVEFORMATEX,
ByVal pwfltr作为IntPtr,
ByVal dwCallback作为IntPtr,
ByVal dwinstance作为IntPtr,
ByVal fdwOpen作为Int32)作为Int32
res = acmStre amOpen(m_has,0,m_MP3wfxSrc,m_wfxDst,
0,0,0,ACM_STREAMOPENF_NONREALTIME)
如果它不喜欢0,请使用IntPtr。零。
-
// Alessandro Angeli
// MVP ::数字媒体
// a dot angeli at psynet dot net
Try this:
Declare Auto Function acmStreamOpen Lib "MsAcm32.dll"
(ByRef phas As IntPtr,
ByVal had As IntPtr,
ByRef pwfxSrc As MPEGLAYER3WAVEFORMAT,
ByRef pm_wfxDst As WAVEFORMATEX,
ByVal pwfltr As IntPtr,
ByVal dwCallback As IntPtr,
ByVal dwinstance As IntPtr,
ByVal fdwOpen As Int32) As Int32
res = acmStreamOpen(m_has, 0, m_MP3wfxSrc, m_wfxDst,
0, 0, 0, ACM_STREAMOPENF_NONREALTIME)
If it doesn''t like 0, use IntPtr.Zero.
--
// Alessandro Angeli
// MVP :: Digital Media
// a dot angeli at psynet dot net
ThunderMusic写道:
ThunderMusic wrote:
我正在尝试在VB.NET中使用acm API 。 acmStreamOpen
始终返回MMSYSERR_INVALFLAG。这是我如何使用它:
声明是:
声明自动功能acmStreamOpen Lib" MsAcm32.dll"
(ByRef phas As IntPtr,ByVal有了As Long,ByRef pwfxSrc
作为MPEGLAYER3WAVEFORMAT,ByRef pm_wfxDst作为WAVEFORMATEX,
ByRef pwfltr As Long,ByRef dwCallback As Long,ByRef
dwinstance As Long,ByVal fdwOpen As Int32)As Int32
像这样使用:
res = acmStreamOpen(m_has,0&,m_MP3wfxSrc,m_wfxDst,0&,
0&,0&,ACM_STREAMOPENF_NONREALTIME)
I''m trying to use the acm APIs in VB.NET. acmStreamOpen
always returns MMSYSERR_INVALFLAG. Here''s how I use it :
declaration is :
Declare Auto Function acmStreamOpen Lib "MsAcm32.dll"
(ByRef phas As IntPtr, ByVal had As Long, ByRef pwfxSrc
As MPEGLAYER3WAVEFORMAT, ByRef pm_wfxDst As WAVEFORMATEX,
ByRef pwfltr As Long, ByRef dwCallback As Long, ByRef
dwinstance As Long, ByVal fdwOpen As Int32) As Int32
Used like this :
res = acmStreamOpen(m_has, 0&, m_MP3wfxSrc, m_wfxDst, 0&,
0&, 0&, ACM_STREAMOPENF_NONREALTIME)
试试这个:
声明自动功能acmStreamOpen Lib" MsAcm32.dll"
(ByRef phas As IntPtr,
ByVal有As IntPtr,
ByRef pwfxSrc作为MPEGLAYER3WAVEFORMAT,
ByRef pm_wfxDst作为WAVEFORMATEX,
ByVal pwfltr作为IntPtr,
ByVal dwCallback作为IntPtr,
ByVal dwinstance作为IntPtr,
ByVal fdwOpen作为Int32)作为Int32
res = acmStre amOpen(m_has,0,m_MP3wfxSrc,m_wfxDst,
0,0,0,ACM_STREAMOPENF_NONREALTIME)
如果它不喜欢0,请使用IntPtr。零。
-
// Alessandro Angeli
// MVP ::数字媒体
// a dot angeli at psynet dot net
Try this:
Declare Auto Function acmStreamOpen Lib "MsAcm32.dll"
(ByRef phas As IntPtr,
ByVal had As IntPtr,
ByRef pwfxSrc As MPEGLAYER3WAVEFORMAT,
ByRef pm_wfxDst As WAVEFORMATEX,
ByVal pwfltr As IntPtr,
ByVal dwCallback As IntPtr,
ByVal dwinstance As IntPtr,
ByVal fdwOpen As Int32) As Int32
res = acmStreamOpen(m_has, 0, m_MP3wfxSrc, m_wfxDst,
0, 0, 0, ACM_STREAMOPENF_NONREALTIME)
If it doesn''t like 0, use IntPtr.Zero.
--
// Alessandro Angeli
// MVP :: Digital Media
// a dot angeli at psynet dot net
hi,
现在它返回512,我不知道这意味着什么...
" Alessandro Angeli [MVP :: DigitalMedia]" <无**** @ nowhere.in.the.net> aécrit
dans le message de news: ev **** *********@TK2MSFTNGP10.phx.gbl ...
ThunderMusic写道:
ThunderMusic wrote:
我正在尝试在VB.NET中使用acm API。 acmStreamOpen
始终返回MMSYSERR_INVALFLAG。这是我如何使用它:
声明是:
声明自动功能acmStreamOpen Lib" MsAcm32.dll"
(ByRef phas As IntPtr,ByVal有了As Long,ByRef pwfxSrc
作为MPEGLAYER3WAVEFORMAT,ByRef pm_wfxDst作为WAVEFORMATEX,
ByRef pwfltr As Long,ByRef dwCallback As Long,ByRef
dwinstance As Long,ByVal fdwOpen As Int32)As Int32
像这样使用:
res = acmStreamOpen(m_has,0&,m_MP3wfxSrc,m_wfxDst,0&,
0&,0&,ACM_STREAMOPENF_NONREALTIME)
I''m trying to use the acm APIs in VB.NET. acmStreamOpen
always returns MMSYSERR_INVALFLAG. Here''s how I use it :
declaration is :
Declare Auto Function acmStreamOpen Lib "MsAcm32.dll"
(ByRef phas As IntPtr, ByVal had As Long, ByRef pwfxSrc
As MPEGLAYER3WAVEFORMAT, ByRef pm_wfxDst As WAVEFORMATEX,
ByRef pwfltr As Long, ByRef dwCallback As Long, ByRef
dwinstance As Long, ByVal fdwOpen As Int32) As Int32
Used like this :
res = acmStreamOpen(m_has, 0&, m_MP3wfxSrc, m_wfxDst, 0&,
0&, 0&, ACM_STREAMOPENF_NONREALTIME)
试试这个:
声明自动功能acmStreamOpen Lib" MsAcm32.dll"
(ByRef phas As IntPtr,
ByVal有As IntPtr,
ByRef pwfxSrc作为MPEGLAYER3WAVEFORMAT,
ByRef pm_wfxDst作为WAVEFORMATEX,
ByVal pwfltr作为IntPtr,
ByVal dwCallback作为IntPtr,
ByVal dwinstance作为IntPtr,
ByVal fdwOpen As Int32)As Int32
res = acmStreamOpen(m_has,0,m_MP3wfxSrc,m_wfx Dst,
0,0,0,ACM_STREAMOPENF_NONREALTIME)
如果它不喜欢0,请使用IntPtr.Zero。
-
// Alessandro Angeli
// MVP ::数字媒体
// psynet dot net的点缀angeli
Try this:
Declare Auto Function acmStreamOpen Lib "MsAcm32.dll"
(ByRef phas As IntPtr,
ByVal had As IntPtr,
ByRef pwfxSrc As MPEGLAYER3WAVEFORMAT,
ByRef pm_wfxDst As WAVEFORMATEX,
ByVal pwfltr As IntPtr,
ByVal dwCallback As IntPtr,
ByVal dwinstance As IntPtr,
ByVal fdwOpen As Int32) As Int32
res = acmStreamOpen(m_has, 0, m_MP3wfxSrc, m_wfxDst,
0, 0, 0, ACM_STREAMOPENF_NONREALTIME)
If it doesn''t like 0, use IntPtr.Zero.
--
// Alessandro Angeli
// MVP :: Digital Media
// a dot angeli at psynet dot net
这篇关于acmStreamOpen总是因MMSYSERR_INVALFLAG而失败么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!