通过WinAPI播放PCM声音】的更多相关文章

在Windows平台上,播放PCM声音使用的API通常有如下两种. waveOut and waveIn:传统的音频MMEAPI,也是使用的最多的 xAudio2:C++/COM API,主要针对游戏开发,是DirectSound的基础 在Windows Vista以后,推出了更加强大的WASAPI ,并用WASAPI封装了MME以及DirectSound API. 对于前面的两个API,在.net平台下有如下封装: NAudio Sharpdx WSAPI可能由于更加复杂,没有什么比较完善的封…
前言 该篇整理的原始来源为http://blog.csdn.net/leixiaohua1020/article/details/40540147.非常感谢该博主的无私奉献,写了不少关于不同多媒体库的博文.让我这个小白学习到不少.现在将其整理是为了收录,以备自己查看. 一.DirectSound简介 DirectSound是微软所开发DirectX的组件之一,可以在Windows 操作系统上录音,并且记录波形音效(waveform sound).目前DirectSound 是一个成熟的API ,…
本文记录SDL播放音频的技术.在这里使用的版本是SDL2.实际上SDL本身并不提供视音频播放的功能,它只是封装了视音频播放的底层API.在Windows平台下,SDL封装了Direct3D这类的API用于播放视频:封装了DirectSound这类的API用于播放音频.因为SDL的编写目的就是简化视音频播放的开发难度,所以使用SDL播放视频(YUV/RGB)和音频(PCM)数据非常的容易. SDL简介 SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,…
本文记录DirectSound播放音频的技术.DirectSound是Windows下最常见的音频播放技术.目前大部分的音频播放应用都是通过DirectSound来播放的.本文记录一个使用DirectSound播放PCM的例子.注:一位仁兄已经提醒我DirectSound已经计划被XAudio2取代了.后来考证了一下发现确有此事.因此在下次更新中考虑加入XAudio2播放PCM的例子.本文仍然记录一下DirectSound这位“元老”. DirectSound简介 DirectSound是微软所…
众所周知,Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的.MediaPlayer在底层是基于OpenCore(PacketVideo)的库实现的,为了构建一个MediaPlayer程序,上层还包含了进程间通讯等内容,这种进程间通讯的基础是Android基本库中的Binder机制.但是该类只能对完整的音频文件进行操作,而不能直接对纯PCM音频数据操作.假如我们通过解码得到…
===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频播放演示样例2:GDI播放YUV, RGB 最简单的视音频播放演示样例3:Direct3D播放YUV,RGB(通过Surface) 最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture) 最简单的视音频播放演示样例5:OpenGL播放RGB/YUV 最简单的视音频播放演示样例…
本篇项目地址,名字是录音和播放PCM,求starhttps://github.com/979451341/Audio-and-video-learning-materials 1.AudioTrack官方说明 AudioTrack允许PCM音频缓冲器流到音频接收器进行回放.这是通过“推”的数据对象的信号使用 write(byte[], int, int) and write(short[], int, int) 方法.一个信号可以在两种模式下运行:静态或流.在流模式中,应用程序写一个连续的数据流…
OpenAL播放pcm或wav数据流-windows/iOS/Android(一)   最近在研究渲染问题,本文采用openal做pcm和wav数据流播放,并非本地文件,demo是windows的,ios通用.网上都是ios的,ios需要引用OpenAl.framework框架, Android平台需要做openal的jni,android的openal库可以参考 http://blog.csdn.NET/matrix_laboratory/article/details/53319735这篇文…
摘抄雷兄 http://blog.csdn.net/leixiaohua1020/article/details/46890259 /** * 最简单的SDL2播放音频的例子(SDL2播放PCM) * Simplest Audio Play SDL2 (SDL2 play PCM) * * 雷霄骅 Lei Xiaohua * leixiaohua1020@126.com * 中国传媒大学/数字电视技术 * Communication University of China / Digital T…
方法1: 系统会自带了些声音,有时候一些操作用必要自己播放一下声音提醒一下,用bash的直接say something就ok了,写代码的时候呢?原来很简单的,一句: [[NSSound soundNamed:@"Hero"] play]; 就ok了, 其中Hero是文件名,具体都有啥文件名去这里找 /System/Library/Sounds 一般的文件名列表: BassoBlowBottleFrogFunkGlassHeroMorsePingPopPurrSosumiSubmarin…
1.步骤一:在Info.plist中,添加"Required background modes"键,value为:App plays audio 或者: 步骤二: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    self.window = [[[UIWindow alloc] initWithFrame:[[U…
OpenSL ES 是基于NDK也就是c语言的底层开发音频的公开API,通过使用它能够做到标准化, 高性能,低响应时间的音频功能实现方法. 这次是使用OpenSL ES来做一个音乐播放器,它能够播放m4a.mp3文件,并能够暂停和调整音量. 播放音乐需要做一些步骤: 1.创建声音引擎 首先创建声音引擎的对象接口 result = slCreateEngine(&engineObject, , NULL, , NULL, NULL); 然后实现它 result = (*engineObject)-…
这篇文章主要介绍了使用WindowsAPI实现播放PCM音频的方法,很实用的一个功能,需要的朋友可以参考下 本文介绍了使用WindowsAPI实现播放PCM音频的方法,同前面一篇使用WindowsAPI获取录音音频的方法原理具有相似之处,这里就不再详细介绍具体的函数与结构体的参数,相同的部分加以省略,只介绍主要的功能部分代码.如下所示: 1. waveOutGetNumDevs 2. waveOutGetDevCaps 3. waveOutOpen 回调函数: ? 1 void CALLBACK…
SoundPool 最大只能申请1M的内存空间,只能用一些很短的声音片段,而不是用它来播放歌曲或者做游戏背景音乐. 使用 SoundPool 播放短声音实现步骤如下: // 创建SoundPool实例, 指定最大可以加载声音为3个 SoundPool soundPool = new SoundPool(3, AudioManager.STREAM_MUSIC, 0); // 分别加载三个不同的声音 int shoot1ID = soundPool.load(this, R.raw.shoot1,…
参考雷神的代码: /** * 最简单的SDL2播放音频的例子(SDL2播放PCM) * Simplest Audio Play SDL2 (SDL2 play PCM) * * 本程序使用SDL2播放PCM音频采样数据.SDL实际上是对底层绘图 * API(Direct3D,OpenGL)的封装,使用起来明显简单于直接调用底层 * API. * * 函数调用步骤如下: * * [初始化] * SDL_Init(): 初始化SDL. * SDL_OpenAudio(): 根据参数(存储于SDL_A…
     测试环境: Ubuntu 14 MonoDevelop CodeBlocks 1.建立一个共享库(shared library) 这里用到了linux下的音频播放库,alsa-lib. alsa是linux下的一个开源项目,它的全名是Advanced Linux Sound Architecture.它的安装命令如下: sudo apt-get install libasound2-dev 使用 Coceblocks 建立一个 shared library 项目,命名为libTest2…
1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等. 44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声); 22050HZ 8bit  mono: 每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道; 当然也可以有 16bit 的单声道或 8bit 的立体声, 等等. 采样率是指:声音信号在“模→数”转换过程中单位时间…
一.AudioTrack 基本使用 AudioTrack 类可以完成Android平台上音频数据的输出任务.AudioTrack有两种数据加载模式(MODE_STREAM和MODE_STATIC),对应的是数据加载模式和音频流类型, 对应着两种完全不同的使用场景. MODE_STREAM:在这种模式下,通过write一次次把音频数据写到AudioTrack中.这和平时通过write系统调用往文件中写数据类似,但这种工作方式每次都需要把数据从用户提供的Buffer中拷贝到AudioTrack内部的…
AudioRecord 与 MediaRecorder 区别 AudioRecord 基于字节流录制,输出的是pcm数据,未进行压缩,直接保存的pcm文件不能被播放器识别播放. 可以对音频文件进行实时处理,直播类中对录制的声音进行变声编辑. MediaRecorder 是基于AudioRecord之上,进行了封装,使用简单,由于本身对录制的音频进行压缩,编码,无法对音频进行实时处理编辑.适用于普通的音频录制. 配合MediaPlayer 进行播放. public AudioRecord(int…
在Windows Phone 中播放提示音可以使用 Microsoft.Xna.Framework.Audio 命名空间下的 SoundEffect 类.具体使用方法如下: 1. 根据声音文件路径创建播放实例. private void InitSoundEffact() { var stream = TitleContainer.OpenStream("Resources/chat.wav"); soundEffact = SoundEffect.FromStream(stream)…
导入框架: 代码: #import <UIKit/UIKit.h> #import <AudioToolbox/AudioToolbox.h> @interface MsgPlaySound : NSObject { SystemSoundID sound;//系统声音的id 取值范围为:1000-2000 } - (id)initSystemShake;//系统 震动 - (id)initSystemSoundWithName:(NSString *)soundName Soun…
系统环境:适用于Windows操作系统和macOS的Guitar Pro . 问题表现:已成功安装Guitar Pro ,但用Guitar Pro 播放时没有任何声音或播放失真. 解决方案:首先确保安装的是Guitar Pro的最新版本,然后检查以下几点. 1.是否安装了Guitar Pro音色库在Guitar Pro 安装过程中,我们可以选择安装或不安装Guitar Pro RSE音库(即Soundbanks音色库).但如果不安装这些音库,就只能使用MIDI模式进行播放. 如果要再次安装RSE…
WAVE文件格式是Microsoft为存储多媒体的RIFF规范的一部分.一个RIFF文件以一个文件头开始,然后是一系列的数据块.一个WAVE文件常常仅由一个WAVE块构成,WAVE块包含一个说明格式的fmt块和存储取样信息的数据块. 标准WAVE文件格式 偏移 长度(字节) 变量名 描述 备注 0 4 ChunkID ASCII字符“RIFF”,大端形式 RIFF头 4 4 ChunkSize 36+SubChunk2Size,即:4 + (8 + SubChunk1Size) + (8 + S…
在需要声音的类的.h文件中添加     #import <AudioToolbox/AudioToolbox.h>static SystemSoundID shake_sound_male_id = 0; -(void) playSound {    NSString *path = [[NSBundle mainBundle] pathForResource:@"shake_sound_male" ofType:@"wav"];    if (path…
XAudio2 是一个跨平台的API,在Xbox 360及Windows中得到支持.在Xbox 360上, XAudio2作为一个静态库编译到游戏可执行文件中.在Windows上,XAudio2提供一个动态链接库(DLL).以下例子只使用了其中的一部分功能,并不全面.详情请看微软技术页的XAudio2编程相关(英文). 使用XAudio2来播放未压缩的PCM音频数据的过程并不复杂,主要有以下几个步骤: 1. 建立XAudio2 引擎 使用XAudio2Create函数,该函数的功能是创建一个XA…
目录:[Swift]Xcode实际操作 本文将演示如何播放音频素材. 在项目名称上点击鼠标右键,弹出右键菜单, 选择[Add Files to "DemoApp"],往项目中导入文件命令. 点击选择一个音频文件->[Add] 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //首先导入音频工具箱框架,这样才可以使用系统声音服务 import AudioToolbox class ViewController: UIVi…
今天做愤怒的小鸟时,播放的时候非常非常小,怎么也查不到原因,就去问群里的大佬.原来, 播放音乐的方法: AudioSource.PlayClipAtPoint(audioclip, transform.position ,1.0f); 第一个参数为声音文件,第二个为播放的位置(2d游戏的话无所谓),第三个为声音大小0-1 默认1 Unity里还自带一个AudioListener,相当于音频监听器, 每个摄像机上都默认带一个,但游戏中只允许携带一个, 所以会出现听不到声音的情况!!!…
// // MainViewController.h // RawAudioDataPlayer // // Created by SamYou on 12-8-18. // Copyright (c) 2012年 SamYou. All rights reserved. // #import <UIKit/UIKit.h> #import <AudioToolbox/AudioToolbox.h> #define QUEUE_BUFFER_SIZE 4 //队列缓冲个数 #def…
昨天用PyQt5的QtMultimedia模块播放音乐时,单独使用可播放,放代码里结合使用死的播放不了.以下是测试demo可播放代码: # -*- coding: utf-8 -*- # Nola from PyQt5 import QtWidgets, QtCore, QtMultimedia import sys app = QtWidgets.QApplication(sys.argv) url = QtCore.QUrl.fromLocalFile(r"D:\project\pyqt5_…
相信很多朋友在安装了guitar pro打谱后都会发现没有声音,关于这个问题相信大家都很苦恼到底是什么问题呢,今天小编就这个问题与大家好好讨论讨论,希望对大家有帮助,感兴趣的朋友可以进来一起学习哦. 首次我们先来看看是怎样使用Guitar Pro播放文件的? 文件打开后只需按快捷键,空格键. 这是你会看到变化了,谱子上有变化.多了一个竖的绿色线. 这是随着竖线的滚动,你会听到音响有音乐传出了.这就已经播放了. 现在你可以跟着音乐练习了. 很多朋友这时就会问,按照步骤播放了之后,但是为什么会没有声…