已经得到pcm的数据文件,需要将它压缩后,保存为avi格式。压缩想利用系统的编码器,类似于录音机可以弹出来的选择编码器一样。
现在的问题是利用AVISaveOptions,不能弹出音频设定的dialog。AVICOMPRESSOPTIONS opts, *pcopts = &opts; 
ZeroMemory(&opts,sizeof(opts));
opts.fccType = streamtypeAUDIO; 
BOOL b = AVISaveOptions( 0, 0, 1, &ps, &pcopts);b返回一直false。pcm的format为DWORD dwChannels = 1; DWORD nSamplesPerSec = 8000; DWORD dwBitsPerSample = 16;请大家帮忙指点!谢谢!

解决方案 »

  1.   

    AVISaveOptions( 0, 0, 1, &ps, &pcopts); 
    前边两个参数,你给它指定一下。
    第一个参数:指定你窗口的 handle第二个参数:指定 ICMF_CHOOSE_PREVIEW 试试看
      

  2.   


    还是不行,我现在怀疑ps创建的时候有问题,但是不知道错在哪里?
    AVISTREAMINFO strhdr;
    memset(&strhdr, 0, sizeof(strhdr));
    strhdr.fccType=streamtypeAUDIO;
    hr = AVIFileCreateStream(pfile,&ps,&strhdr);
    基本上hr返回一直是ok的。
      

  3.   


    还是不行,我现在怀疑ps创建的时候有问题,但是不知道错在哪里?
    AVISTREAMINFO strhdr;
    memset(&strhdr, 0, sizeof(strhdr));
    strhdr.fccType=streamtypeAUDIO;
    hr = AVIFileCreateStream(pfile,&ps,&strhdr);
    基本上hr返回一直是ok的。
      

  4.   

    还是不行,我现在怀疑ps创建的时候有问题,但是不知道错在哪里?
    AVISTREAMINFO strhdr;
    memset(&strhdr, 0, sizeof(strhdr));
    strhdr.fccType=streamtypeAUDIO;
    hr = AVIFileCreateStream(pfile,&ps,&strhdr);
    基本上hr返回一直是ok的。