作业帮 > 综合 > 作业

关于音频的采样率等的计算.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 14:50:58
关于音频的采样率等的计算.
我现在能拿到三个数据:
BitsPerSample;// 获取用于存储某种音频格式的单个采样的音频信息的位数.
Channels;// 获取这种音频格式所提供的声道数.
SamplesPerSecond// 这种音频格式所提供的每秒采样数.
请给出下面函数的计算公式:public TimeSpan GetSampleDuration(int sizeInBytes).public int GetSampleSizeInBytes(TimeSpan duration).给出下面属性的计算公式:public int SampleRate,public TimeSpan BufferDuration.谢绝复制党.
一段长度为1秒的音频数据占用的存储空间 = 每个声道占用的存储空间 * 声道个数
= (每秒样本个数*每个样本占用的存储空间)*声道个数
(1)public TimeSpan GetSampleDuration(int sizeInBytes)函数
这个函数根据名称来看,大概功能是输入一段音频数据的总字节数(存储空间大小),利用返回值输出音频的持续时间.而音频数据的持续时间 = 音频数据所占用的存储空间的总大小 / 每一秒音频数据占用空间的大小,根据开头的公式,可以得出:
持续时间 = 存储空间的总大小/((每秒的样本个数 * 每个样本占用的存储空间)*声道)
(2)public int GetSampleSizeInBytes(TimeSpan duration)函数
这个函数的字面意思是根据音频数据的持续时间,计算出数据的字节数
音频数据的字节数 = (每秒音频数据占用的存储空间(这里的存储空间单位是bit) * 持续时间的秒数))/8, 原因是每8bit是一个byte(字节).
(3)public int SampleRate成员变量
这个成员变量就是采样频率,值就是 SamplesPerSecond,即每秒的样本个数
(4)public TimeSpan BufferDuration成员变量
这个变量大概的意思是一段音频数据的持续时间,计算公式参考(1)中描述的计算方法
当然,实际的函数功能应该根据需求来修改计算公式, 我给出的答案全部是根据函数的字面意思得出的.