Option Explicit
'分割\合并音频文件
'-- 合并文件
'-- 将之前分割出来的 1.mp3 和 2.mp3 合并为 music_new.mp3
Private Sub cmdAddFile_Click()
Dim bytData() As Byte
bytData = ReadFile(App.Path & "\1.mp3")
Call WriteFile(App.Path & "\music_new.mp3", bytData)
bytData = ReadFile(App.Path & "\2.mp3")
Call WriteFile(App.Path & "\music_new.mp3", bytData, , False)
End Sub
'-- 分割文件
'-- 示例将当前目录的 music.mp3 切割为 1.mp3(30000字节) 和 2.mp3(剩余部分)
Private Sub cmdCut_Click()
Dim bytData() As Byte
bytData = ReadFile(App.Path & "\01.mp3", 1, 100000)
Call WriteFile(App.Path & "\1.rmvb", bytData)
bytData = ReadFile(App.Path & "\01.mp3", 100001)
Call WriteFile(App.Path & "\2.rmvb", bytData)
End Sub
Private Function ReadFile(ByVal strFileName As String, Optional ByVal lngStartPos As Long = 1, Optional ByVal lngFileSize As Variant = -1) As Byte()
Dim FilNum As Integer
FilNum = FreeFile
Open strFileName For Binary As #FilNum
If lngFileSize = -1 Then
ReDim ReadFile(LOF(FilNum) - lngStartPos)
Else
ReDim ReadFile(lngFileSize - 1)
End If
Get #FilNum, lngStartPos, ReadFile
Close #FilNum
End Function
Private Function WriteFile(ByVal strFileName As String, bytData() As Byte, Optional ByVal lngStartPos As Long = -1, Optional ByVal OverWrite As Boolean = True)
Dim FilNum As Integer
FilNum = FreeFile
If OverWrite = True And Dir(strFileName) <> "" Then
Kill strFileName
End If
Open strFileName For Binary As #FilNum
If lngStartPos = -1 Then
Put #FilNum, LOF(FilNum) + 1, bytData
Else
Put #FilNum, lngStartPos, bytData
End If
Close #FilNum
End Function
Option Explicit
Private Type RIFFHEADER
GroupID As String * 4
Length As Long
RiffType As String * 4
End Type
Private Type FMT
ChunkID As String * 4
ChunkSize As Long
wFormatTag As Integer
wChannels As Integer
dwSamplesPerSec As Long
dwAvgBytesPerSec As Long
wBlockAlign As Integer
wBitsPerSample As Integer
End Type
Private Type DATACHUNK
ChunkID As String * 4
ChunkSize As Long
End Type
Private Declare Function sndPlaySound Lib "winmm.dll" Alias _
"sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_NODEFAULT = &H2
Const SND_LOOP = &H8
Const SND_NOSTOP = &H10
Private Sub Command1_Click()
Dim b() As Byte
Dim fS As Long
fS = 20000 '声音数据长度
Dim u As Long
u = fS - 44
ReDim b(1 To u)
Dim i As Integer
Dim d As Byte
'产生一些随机数据作为声音数据
For i = 1 To u
Randomize
d = CByte(Rnd() * 255)
b(i) = d
DoEvents
Next i
makeWavFile fS, b() '写入文件
MsgBox "OK,Wave file done!"
End Sub
Private Sub makeWavFile(ByVal fSize As Long, wavData() As Byte)
Dim myRiffHeader As RIFFHEADER
Dim myFMT As FMT
Dim myDataChunck As DATACHUNK
If fSize < 44 Then Exit Sub
'写Riff头
With myRiffHeader
.GroupID = "RIFF"
.Length = fSize - 8 ' Riff外的其它内容的长度
.RiffType = "WAVE"
End With
'format chunk 格式块
With myFMT
.ChunkID = "fmt "
.ChunkSize = 16 '未压缩的文件格式
.wFormatTag = 1 '未压缩
.wChannels = 1 '通道数据,此处用音声道
.dwSamplesPerSec = &H2B11 '每秒钟取样数,有三种11025,22050和44100
.dwAvgBytesPerSec = .dwSamplesPerSec * .wChannels
.wBlockAlign = .wChannels * 1 '声道数乘以取样宽(字节数),此处假设为1
.wBitsPerSample = 8 '每个样本的位数,此处假设为8位,即一个字节
End With
'数据块
With myDataChunck
.ChunkID = "data"
.ChunkSize = fSize - Len(myRiffHeader) - Len(myFMT) - Len(myDataChunck)
' .ChunkSize = fSize - 44
End With
Open App.Path & "/test.wav" For Binary As #1
Put #1, , myRiffHeader
Put #1, , myFMT
Put #1, , myDataChunck
Put #1, , wavData
Close #1
End Sub
Private Sub Command2_Click()
'播放声音
Dim Fn As String
Fn = App.Path & "\test.wav"
If Dir(Fn) <> "" Then
Dim sFlags As Long
sFlags = SND_ASYNC Or SND_NODEFAULT
sndPlaySound Fn, sFlags
End If
End Sub
视频格式可以分为适合本地播放的本地影像视频和适合在网络中播放的网络流媒体影像视频两大类。尽管后者在播放的稳定性和播放画面质量上可能没有前者优秀,但网络流媒体影像视频的广泛传播性使之正被广泛应用于视频...
2:100分急求,随机输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望高手帮忙! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,...
ffmpeg是一个多媒体开发库,提供了关于音频和视频的工具。这个项目的官网是这里。 下载地址 ffmpeg提供了方便地控制台命令,可以在下载页面下载。三个平台(windows,linux,macos)都有打包好的可执行文件,能够在...
视频格式可以分为适合本地播放的本地影像视频和适合在网络中播放的网络流媒体影像视频两大类。尽管后者在播放的稳定性和播放画面质量上可能没有前者优秀,但网络流媒体影像视频的广泛传播性使之正被广泛应用于视频...
程序设计语言有3个方面的因素,即语法、语义和语用。语法表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及使用者。语义表示程序的含义,亦即表示按照各种...
https://www.isofts.org/category/software-for-mac-os-x/ 转载▼本人一年半来跟踪Mac志(http://www.isofts.org/category/software-for-mac-os-x/)、MacGG(http://www.macgg.com/archives/category/mac软件),潜心...
本人一年半来跟踪Mac志(http://www.isofts.org/category/software-for-mac-os-x/)、MacGG(http://www.macgg.com/archives/category/mac软件),潜心测试,用心总结...,尤其适合程序员……软件介绍多摘自以上两个网站...
WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelCo...
码率或码流率也就码流(Data Rate)是指视频文件在单位时间内使用的数据流量,通俗一点的理解就是取样率,是视频编码中画面质量控制中最重要的部分,一般用kb/s或者Mb/s表示。同样分辨率下,视频文件的码流越大,压缩比...
ffmpeg和mplayer中求平均值得方法 1 ordinary c language level #define avg2(a,b) ((a+b+1)>>1) #define avg4(a,b,c,d) ((a+b+c+d+2)&...显而易见...,注意a,b宏表达式可能引出的副作用 ...
A: 光碟烧录知识1978年,PHILIPS和SONY公司都致力于生产流行的音频CD,当时 PHILIPS已经开发出商用激光...1982年,两公司宣布了一个标准,其中包括记录、取样,尤其是现在正使用的4.72\"格式 等规格(之所以选...
WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 ...
这是我送给新人的,不喜欢别说啊,我相信有许多新人和我一样不会压制视屏文件,所以我特意找了一些资料来做教程,希望各位新人喜欢,如果可以,希望有达人能附上图片解说,使其完美! AviSynth入门与应用指南 ...
zh'zhuang 转载▼ 本人一年半来跟踪Mac志(http://www.isofts.org/category/software-for-mac-os-x/)、MacGG(http://www.macgg.com/archives/category/mac软件)... ...软件介绍多摘自以上两个网站,在此表示感谢。
2005-09-07数组和广义表 - [数据结构]第五章 数组和广义表——非线性数据结构5.1 数组的定义和运算☆二维数组的逻辑结构形式定义为: 2_Array=( D, R )其中 D={ aij | i=c1,c1+1,...,d1, j=c2,c2+1,...,d2, aijD0} ...
VC图像编程 分类: MFC编程 2013-09-15 13:08 114人阅读 评论(0) ... 图象拼接是在全景视频系统、地理信息系统等应用中经常遇到的一个问题,本文基于网格匹配的方法对边界部分有重叠的图象提出了一
这里的IDE设备包括了IDE硬盘和IDE光驱,第一、第二组设备是指主板上的第一、第二根IDE数据线,一般来说靠近芯片的是第一组IDE设备,而主设备、从设备是指在一条IDE数据线上接的两个设备,大家知道每根数据线上可以接...
Intellij IDEA入门到精通主要是帮助Java学员掌握Intellij IDEA开发工具,本系列课程讲解了很多插件的使用,帮助开发人员提高工作效率。 帮助学员快速掌握Intellij IDEA,并提高工作效率
2020简历模板合集
jdk1.8 64位官方正式版 jdk-8u91-windows
Python3.2.3官方文档(中文版) 由笔者自己翻译,有不当之处希望在博客上相互交流
C#入门必看含有100个例字,每个例子都是针对C#的学习关键知识点设计的,是学习C#必须知道的一些程序例子,分享给大家,需要的可以下载
十个c语言案例 (1)贪吃蛇 (2)五子棋游戏 (3)电话薄管理系统 (4)计算器 (5)万年历 (6)电子表 (7)客户端和服务器通信 (8)潜艇大战游戏 (9)鼠标器程序 (10)手机通讯录系统
个人在学习该课程时候自己做的复习笔记,从物理层一直到应用层都有,一共85页,文字图片搭配合理
50个经典安卓项目源码 50个经典安卓项目源码 50个经典安卓项目源码
数据结构10套考试题目+答案解析,我们的期末考试题目基本都是从里面出的,全部刷一遍保证85+,分享给学弟学妹们
python大作业分享--30多个项目任你选(由于上传大小限制分多个文件上传。爬虫:https://download.csdn.net/download/weixin_43960044/12533382小游戏:https://download.csdn.net/download/weixin_43960044/12533379),应付大作业完全没问题。内涵30多个项目,随意挑选。爬虫(爬抖音视频、下载B站视频、怕天气预报等)小游戏(五子棋、坦克大战、贪吃蛇、拼图等)。
非常漂亮的100个前端案例,包含幻灯片切换、图片缩放、相册、放大镜、图片拖着滚动等等,只有你想不到。
Microsoft office 2016专业增强版是一款由官方发布的Microsoft office办公软件,而且免费开放给所有Windows用户免费使用,其中Excel、word、PPT都非常智能化,界面最新加入暗黑主题,并且按钮的设计风格开始向Windows10靠拢。本平台提供Office 2016专业增强版,需要的朋友可下载试试! Office 2016 专业增强版安装教程 1. 下载
vs2017最新离线安装包,将官网文件整合成4个压缩包,包含所有组件的功能,安装过程无需联网。很方便。