vb 音频写入avi时返回错误-2147205014 ,重谢(有红包噢)

苍山的雪 2019-09-10 09:54:09
我要疯掉了.好几天都没弄好.是哪里错了.
一直返回的都是avierr_ok,一到写入时就出现-2147205014 错误.图片压缩时没问题,如果有avi视频及音频处理经验的可以联系我Q452781589.实时聊天音频数据保存为avi(类似电话录音),重谢(有红包噢)


Public Function InitWare(savefile As String) As Boolean '保存到字节流
'SaveTofile保存到文件 fps每秒祯数 PicFile 图片样张大小
If IsSaveAVI Then
MsgBox "文件保存中,不能再次执行此操作!", vbInformation, "方舟提示"
Exit Function
End If

Dim res As Long
Dim strhdr_vides As AVI_STREAM_INFO
Dim BI As BITMAPINFOHEADER
Dim opts As AVI_COMPRESS_OPTIONS
Dim opts2 As AVI_COMPRESS_OPTIONS

Dim pOpts As Long, pOpts2 As Long
Dim Psfile As String
res = AVIFileOpen(fileHDC, savefile, OF_WRITE Or OF_CREATE, 0&) '创建或打开AVI文件
If (res <> AVIERR_OK) Then GoTo error




Dim strhdr_auds_info As AVI_STREAM_INFO

With strhdr_auds_info '音频流结构

.fccType = mmioStringToFOURCC("auds", 0&)
'.fccHandler = mmioFOURCC("g", "7", "2", "6")
.dwFlags = 0 '
.dwCaps = 0 '
.wPriority = 0 '
.wLanguage = 0 '
.dwScale = 1600 ' //
.dwRate = 8000 ' //Hz
.dwStart = 0 '
.dwInitialFrames = 0 '
.dwSuggestedBufferSize = 1600 '
.dwQuality = -1 '
.dwSampleSize = 1 '
'.rcFrame.bottom = 0 '
'.rcFrame.left = 0 '
'.rcFrame.right = 0 '
'.rcFrame.top = 0 '
.dwEditCount = 0 '
.dwFormatChangeCount = 0 '
.dwLength = 0 '
End With

res = AVIFileCreateStream(fileHDC, AuStream, strhdr_auds_info) '创建音频流
If (res <> AVIERR_OK) Then GoTo error



'设备音频流
Dim strhdr_auds As WAVEFORMATEX

With strhdr_auds '音频格式
.wFormatTag = WAVE_FORMAT_PCM
.nChannels = 1
.nSamplesPerSec = 8000
.wBitsPerSample = 8
.nBlockAlign = (.wBitsPerSample / 8) * .nChannels
.nAvgBytesPerSec = .nSamplesPerSec * .nBlockAlign
'AVIStreamSetFormat(m_paviAudioStream, m_aviAudioFrames, &wave_format, sizeof(wave_format))
End With

Dim strauds() As Byte
ReDim strauds(0 To Len(strhdr_auds) - 1)
CopyMemory strauds(0), strhdr_auds, Len(strhdr_auds)
Dim btBuf As Long
btBuf = VarPtr(strauds(0))
Dim BufLen As Long
BufLen = UBound(strauds) + 1


res = AVIStreamSetFormat(AuStream, 0, ByVal btBuf, BufLen) '设备音频格式
If (res <> AVIERR_OK) Then GoTo error


' res = AVIStreamSetFormat(AuStream, 0, ByVal strhdr_auds, Len(strhdr_auds)) '设备音频格式
'If (res <> AVIERR_OK) Then GoTo error


pOpts2 = VarPtr(opts2)
'res = AVISaveOptions(Form1.hWnd, ICMF_CHOOSE_KEYFRAME Or ICMF_CHOOSE_DATARATE, 1, AuStream, pOpts2) '音频压缩方式
res = AVISaveOptions(Form1.hwnd, _
ICMF_CHOOSE_KEYFRAME Or ICMF_CHOOSE_DATARATE, _
1, _
AuStream, _
pOpts2) 'returns TRUE if User presses OK, FALSE if Cancel, or error code




'If res <> 1 Then 'In C TRUE = 1
' Call AVISaveOptionsFree(1, pOpts2)
' GoTo error
'End If

res = AVIMakeCompressedStream(AuCompressed, AuStream, opts2, 0&) '设置音频压缩方式



If res <> AVIERR_OK Then GoTo error



'res = AVIStreamSetFormat(AuCompressed, 0, ByVal VarPtr(strauds(0)), UBound(strauds) + 1) '设备音频格式
'If (res <> AVIERR_OK) Then GoTo error



'Dim res As Long
''Dim btBuf As Long
''Dim BufLen As Long


'btBuf = VarPtr(btWare(0))
'BufLen = UBound(btWare) + 1

Dim byt(1 To 1600) As Byte
BufLen = UBound(byt)
btBuf = VarPtr(byt(1))
ChunkID = 1

res = AVIStreamWrite(AuCompressed, _
ChunkID, _
1, _
btBuf, _
BufLen, _
AVIIF_KEYFRAME, _
ByVal 0&, _
ByVal 0&)
'出错位置,大佬们麻烦看一下写不了 音频写入avi时返回错误-2147205014

Debug.Print res
If res <> AVIERR_OK Then GoTo error
ChunkID = ChunkID + 1







InitWare = True
InitWare = True
Exit Function

error:
StopSave res
...全文
818 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
苍山的雪 2019-09-16
  • 打赏
  • 举报
回复
谢谢.关于视频API,资料很少.我也是没辙了.
PctGL 2019-09-12
  • 打赏
  • 举报
回复
错误信息的意思是 参数错误,
没研究过视频的东西, 建议你去msdn好好查查这个api的各参数意义
内容概要:该PPT详细介绍了企业架构设计的方法论,涵盖业务架构、数据架构、应用架构和技术架构四大核心模块。首先分析了企业架构现状,包括业务、数据、应用和技术四大架构的内容和关系,明确了企业架构设计的重要性。接着,阐述了新版企业架构总体框架(CSG-EAF 2.0)的形成过程,强调其融合了传统架构设计(TOGAF)和领域驱动设计(DDD)的优势,以适应数字化转型需求。业务架构部分通过梳理企业级和专业级价值流,细化业务能力、流程和对象,确保业务战略的有效落地。数据架构部分则遵循五大原则,确保数据的准确、一致和高效使用。应用架构方面,提出了分层解耦和服务化的设计原则,以提高灵活性和响应速度。最后,技术架构部分围绕技术框架、组件、平台和部署节点进行了详细设计,确保技术架构的稳定性和扩展性。 适合人群:适用于具有一定企业架构设计经验的IT架构师、项目经理和业务分析师,特别是那些希望深入了解如何将企业架构设计与数字化转型相结合的专业人士。 使用场景及目标:①帮助企业和组织梳理业务流程,优化业务能力,实现战略目标;②指导数据管理和应用开发,确保数据的一致性和应用的高效性;③为技术选型和系统部署提供科学依据,确保技术架构的稳定性和扩展性。 阅读建议:此资源内容详尽,涵盖企业架构设计的各个方面。建议读者在学习过程中,结合实际案例进行理解和实践,重点关注各架构模块之间的关联和协同,以便更好地应用于实际工作中。
资 源 简 介 独立分量分析(Independent Component Analysis,简称ICA)是近二十年来逐渐发展起来的一种盲信号分离方法。它是一种统计方法,其目的是从由传感器收集到的混合信号中分离相互独立的源信号,使得这些分离出来的源信号之间尽可能独立。它在语音识别、电信和医学信号处理等信号处理方面有着广泛的应用,目前已成为盲信号处理,人工神经网络等研究领域中的一个研究热点。本文简要的阐述了ICA的发展、应用和现状,详细地论述了ICA的原理及实现过程,系统地介绍了目前几种主要ICA算法以及它们之间的内在联系, 详 情 说 明 独立分量分析(Independent Component Analysis,简称ICA)是近二十年来逐渐发展起来的一种盲信号分离方法。它是一种统计方法,其目的是从由传感器收集到的混合信号中分离相互独立的源信号,使得这些分离出来的源信号之间尽可能独立。它在语音识别、电信和医学信号处理等信号处理方面有着广泛的应用,目前已成为盲信号处理,人工神经网络等研究领域中的一个研究热点。 本文简要的阐述了ICA的发展、应用和现状,详细地论述了ICA的原理及实现过程,系统地介绍了目前几种主要ICA算法以及它们之间的内在联系,在此基础上重点分析了一种快速ICA实现算法一FastICA。物质的非线性荧光谱信号可以看成是由多个相互独立的源信号组合成的混合信号,而这些独立的源信号可以看成是光谱的特征信号。为了更好的了解光谱信号的特征,本文利用独立分量分析的思想和方法,提出了利用FastICA算法提取光谱信号的特征的方案,并进行了详细的仿真实验。 此外,我们还进行了进一步的研究,探索了其他可能的ICA应用领域,如音乐信号处理、图像处理以及金融数据分析等。通过在这些领域中的实验和应用,我们发现ICA在提取信号特征、降噪和信号分离等方面具有广泛的潜力和应用前景。

808

社区成员

发帖
与我相关
我的任务
社区描述
VB 多媒体
社区管理员
  • 多媒体
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧