正经方法硬解与软解应该在第三部分mediaCodec中提及,目前测试音频使用第二部分录制的pcm音频以及外部音频,以下是外部音频转pcm的方法:
将音频导入格式工厂转为wav格式(格式工厂底层利用ffmpeg软解,选择wav是因为wav=44字节wav文件头+pcm)
将wav文件前44个字节去掉并改后缀名为pcm,代码如下(个人用c++实现)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include<iostream> #include<stdlib.h> using namespace std; int main() { size_t result; char *buf; FILE *fp1 = fopen("C:\\Users\\ZONGNAN.CHEN\\Music\\test.wav", "rb"); FILE *fp2 = fopen("C:\\Users\\ZONGNAN.CHEN\\Music\\test.pcm", "wb"); fseek(fp1, 0, SEEK_END); long filesize; filesize = ftell(fp1); if (fp1 == NULL || fp2 == NULL) { cout << "file open filed!!" << endl; return 0; } rewind(fp1); fseek(fp1, 44, SEEK_SET); buf = (char *) malloc(sizeof(char) * filesize); if (buf == NULL) { printf("memory error"); return 0; } result = fread(buf, 1, (filesize - 44), fp1); if (result != filesize - 44) { cout << "reing error!!" << endl; return 0; } fwrite(buf, 1, (filesize - 44), fp2); fclose(fp1); fclose(fp2); free(buf); return 0; }
|