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,未获取到音频长度。

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

  • 相关阅读:
    通过模板类简单实现Spark的JobServer
    aggregate 和 treeAggregate 的对比
    IntelliJ Idea 常用快捷键列表
    dataframe 数据统计可视化---spark scala 应用
    用java api读取HDFS文件
    .net Core 简单中间件使用
    .Net Core Ocelot网关使用熔断、限流 二
    .Net Core Ocelot网关使用 一
    Docker 问题处理
    CentOS 创建用户
  • 原文地址:https://www.cnblogs.com/meng9527/p/9558198.html
Copyright © 2011-2022 走看看