如何将WAV文件已读取字节数转换为对应播放时长(秒)
WAV已读取字节数转播放时长计算方法
首先你需要提前从WAV文件头中获取*采样率(SampleRate,单位Hz,即每秒的采样次数)*参数,结合已有的声道数NumOfChan、采样位深bitsPerSample,按以下步骤计算即可:
第一步:计算每秒音频占用的字节数
公式如下:// 1字节=8位,最后除以8做单位转换 int bytes_per_second = SampleRate * NumOfChan * bitsPerSample / 8;第二步:用实际读取的字节数计算对应播放时长
你代码中fread返回的nRead就是实际读取到的有效字节数,直接除以每秒字节数即可得到秒级时长:double play_duration = (double)nRead / bytes_per_second;
补充说明
你代码里计算出的size_buffer是整个数据块的总采样帧数,用这个值除以采样率就能得到整个WAV文件的总播放时长:
double total_duration = (double)size_buffer / SampleRate;
内容的提问来源于stack exchange,提问作者Omar
相关产品推荐
相关产品推荐

