博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WP7 录制音频
阅读量:6956 次
发布时间:2019-06-27

本文共 2525 字,大约阅读时间需要 8 分钟。

//开始录制        private void btStart_Click(object sender, RoutedEventArgs e)        {            audioStream = new MemoryStream();            microphone.BufferDuration = TimeSpan.FromMilliseconds(1000);            microphoneBuffer = new byte[microphone.GetSampleSizeInBytes(microphone.BufferDuration)];            microphone.BufferReady += microphoneBuffer_BufferReady;            microphone.Start();            blnRecording = true;        }        //停止录制        private void btStop_Click(object sender, RoutedEventArgs e)        {            if (blnRecording)            {                microphone.Stop();                microphone.BufferReady -= microphoneBuffer_BufferReady;                audioStream.Flush();                recording = audioStream.ToArray();                audioStream.Dispose();                //播放声音                var effect = new SoundEffect(recording, microphone.SampleRate, AudioChannels.Mono);                effect.Play();            }            btRecording.Visibility = Visibility.Visible;            btStart.Visibility = Visibility.Collapsed;            btStop.Visibility = Visibility.Collapsed;        }        void microphoneBuffer_BufferReady(object sender, EventArgs e)        {            microphone.GetData(microphoneBuffer);            audioStream.Write(microphoneBuffer, 0, microphoneBuffer.Length);        }

1、在Silverlight应用程序中使用XNA Game Studio,需要模拟Game循环来使我们的程序能够正常的实施。

2、定义下面的App.class XNAAsyncDispatcher类并将它添加到App()构造函数的下一行。

ApplicationLifetimeObjects.Add(new XNAAsyncDispatcher(TimeSpan.FromMilliseconds(50)));

 定义类XNAAsyncDispatcher

public class XNAAsyncDispatcher : IApplicationService    {        private DispatcherTimer _frameworkDispatcherTimer;        public XNAAsyncDispatcher(System.TimeSpan dispatchInterval)        {            FrameworkDispatcher.Update();            this._frameworkDispatcherTimer = new DispatcherTimer();            this._frameworkDispatcherTimer.Tick += new EventHandler(frameworkDispatcherTimer_Tick);            this._frameworkDispatcherTimer.Interval = dispatchInterval;        }        void IApplicationService.StartService(ApplicationServiceContext context)        {            this._frameworkDispatcherTimer.Start();        }        void IApplicationService.StopService()        {            this._frameworkDispatcherTimer.Stop();        }        void frameworkDispatcherTimer_Tick(object sender, EventArgs e)        {            FrameworkDispatcher.Update();        }    }

 

转载于:https://www.cnblogs.com/jaly201101/archive/2012/02/23/2364354.html

你可能感兴趣的文章
软件工程阅读作业2
查看>>
startup的过程和启动代码
查看>>
字典dic内部常用功能和使用方法-课堂笔记及课后总结
查看>>
include,require,include_once,require_once 的作用和区别
查看>>
android 学习随笔一(配置调试与基础)
查看>>
20160406javaweb 之JDBC简单案例
查看>>
Thinkphp 表单验证
查看>>
tango with django(第二章 准备工作)
查看>>
(四)mybatis之mybatis初了解
查看>>
POSTMAN list参数传值
查看>>
vue的双向数据绑定原理
查看>>
python中引号中有双引号
查看>>
PyQt5 qt desinger
查看>>
python
查看>>
scala学习心得(2)
查看>>
Android 实现类似微信客户端朋友圈更新提示的小红点&栏目订阅
查看>>
HeadFirst Jsp 09 (JSTL)
查看>>
四 Python基础
查看>>
python2.7导入mysqldb
查看>>
LeetCode 263-Ugly Number
查看>>