zoukankan      html  css  js  c++  java
  • windows 自带winmm.dll播放音频问题

    同事用的一个录音小程序在他机器上可以用,换了两个电脑不能用,获取音频长度时总是0,检查代码也没有发现具体问题。最后发现是电脑声卡驱动的问题。更新声卡驱动好了。

    附上播放音频的代码:

    首先,导入dll文件。

     [DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)]
     public static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);
    

      播放音频:

      string buf = "";
    buf = buf.PadLeft(128, ' ');
     strFileName = "open " + Convert.ToChar(34) + strFileName + Convert.ToChar(34) + " alias media";
     APIClass.mciSendString(strFileName, buf, buf.Length, 0); //初始化音频文件 
    APIClass.mciSendString("play media", buf, buf.Length, 0); //播放音频文件 
    

      获取音频长度:

                string durLength = "";
                durLength = durLength.PadLeft(128, Convert.ToChar(" "));
                APIClass.mciSendString("status media length", durLength, durLength.Length, 0);
                durLength = durLength.Trim().Replace("","");
    
                if (string.IsNullOrEmpty(durLength))
    
                    return 0;
    
                else
    
                    return Convert.ToInt32(durLength)/1000;       

    Replace("","")是刚开始定位的问题,不replace直接报异常。加上replace,长度又都为0,未获取到音频长度。

    装上声卡驱动解决问题。开发的电脑上都没有装声卡驱动,(*@ο@*) 哇~

  • 相关阅读:
    P1281 书的复制 dp
    P3402 最长公共子序列(nlogn)
    P1201 [USACO1.1]贪婪的送礼者Greedy Gift Givers
    P1202 黑色星期五
    P1205 方块转换
    [递推] hihocoder 1239 Fibonacci
    [二分] hihoCoder 1269 优化延迟
    [分治] POJ 3233 Matrix Power Series
    使用HTMLParser解析html
    CSAPP2e: Proxy lab 解答
  • 原文地址:https://www.cnblogs.com/meng9527/p/9558198.html
Copyright © 2011-2022 走看看