同事用的一个录音小程序在他机器上可以用,换了两个电脑不能用,获取音频长度时总是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(, Convert.ToChar(" "));
APIClass.mciSendString("status media length", durLength, durLength.Length, );
durLength = durLength.Trim().Replace("\0",""); if (string.IsNullOrEmpty(durLength)) return ; else return Convert.ToInt32(durLength)/;

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

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

windows 自带winmm.dll播放音频问题的更多相关文章

  1. CVE-2012-0003 Microsoft Windows Media Player ‘winmm.dll’ MIDI文件解析远程代码执行漏洞 分析

    [CNNVD]Microsoft Windows Media Player ‘winmm.dll’ MIDI文件解析远程代码执行漏洞(CNNVD-201201-110)    Microsoft Wi ...

  2. CVE-2012-0003:Microsoft Windows Media Player winmm.dll MIDI 文件堆溢出漏洞调试分析

    0x01 蜘蛛漏洞攻击包 前言:2012 年 2月,地下黑产中流行着一款国产名为蜘蛛漏洞的攻击包 -- "Zhi-Zhu Exploit Pack",该工具包含 5 个漏洞,都是在 ...

  3. C# 调用系统winmm.dll 播放音乐wav mp3

    using System.Runtime.InteropServices;//放wav public partial class frmMain : Form { 系统放 播放音乐 wav mp3 [ ...

  4. Windows高速定时器,多媒体定时器winmm.dll库的使用

    项目里面用到的这些看起来名字高大上的定时器测试下来也是非常不准.看了源码发现也是用System.Timers.Timer或者用的是Thread休眠的方式来实现的.100毫秒就不准了.直到一番搜索,发现 ...

  5. Windows基础-使用XAudio2播放音频(本质是WASAPI)

    对于常见的音频播放,使用XAudio2足够了. 时间是把杀猪刀,滑稽的是我成了猪 早在Windows Vista中,M$推出了新的音频架构UAA,其中的CoreAudio接替了DSound.WaveX ...

  6. 通过winmm.dll控制声音播放

    介绍如何通过winmm.dll播放声音 首先导入两个函数 /// <summary> /// 向媒体控制接口发送控制命令 /// </summary> /// <para ...

  7. 与众不同 windows phone (15) - Media(媒体)之后台播放音频

    原文:与众不同 windows phone (15) - Media(媒体)之后台播放音频 [索引页][源码下载] 与众不同 windows phone (15) - Media(媒体)之后台播放音频 ...

  8. .NET winform播放音频文件

    前提:最近要求做一个在winform端做一个音频文件播放的功能,至此,总结最近搜寻的相关资料. 一.微软提供了三种方式来播放音频文件 1.通过System.Media.SoundPlayer来播放 2 ...

  9. winmm.dll包含函数

    DLL 文件: winmm 或者 winmm.dll DLL 名称: Windows Multimedia API 描述: winmm.dll是Windows多媒体相关应用程序接口,用于低档的音频和游 ...

随机推荐

  1. 安装saltstack使用的shell

    sed -i 's/^#//g'  /etc/yum.repos.d/centos6.8.repo sed -i 's/enabled=0/enabled=1/g'  /etc/yum.repos.d ...

  2. springboot中通用mapper结合mybatis generator的使用

    通用mapper就是指的是  tk.mybatis  包下的.这个是通用mapper就是说自动生成的dao层需要继承这个框架提供的mapper类.而我们之前用的org.mybatis这个最开始是普通的 ...

  3. STM32学习笔记:【001】时钟树与RCC

    导言 如果学过单片机的同学应该不会陌生,学习51单片机时最经常听到的就是“最小系统”. 最小系统里面少不了晶振,否则单片机无法工作. 单片机需要晶振(时钟源)来工作,那么对于STM32芯片同样如此. ...

  4. python --端点调试

    python端点调试 左边三角:快速跳到下一个端点 下箭头:单不调试 斜向下箭头:跳到函数内部执行代码

  5. oldboy s21day04

    #!/usr/bin/env python# -*- coding:utf-8 -*- # 1.简述解释型语言和编译型语言的区别?"""1.解释型语言:Python,PH ...

  6. vue 用checkbox 做多选,带选中样式

    <dl v-for="(item,index) in listData" :key="index"> testName <label> ...

  7. 使用js弹出div刷新时闪烁解决方法

    <div style="visibility: hidden"> //弹出div内容 </div>

  8. Python中json一点小知识

    import json dic={ "name":"杨林" } ret=json.dumps(dic,ensure_ascii=False) #因为json.d ...

  9. Lua Doc生成工具

    Luadoc http://keplerproject.github.io/luadoc/ Overview LuaDoc is a documentation generator tool for ...

  10. luogu 1640 连续攻击游戏

    二分图匹配,将需要进行的编号(1-10000)和物件进行匹配,而非编号之间,编号对应物品 #include<bits/stdc++.h> using namespace std; ; ; ...