【发布时间】:2014-04-26 06:42:29
【问题描述】:
我创建了一个小应用程序来录制和播放它,使用此代码制作一个录制按钮和一个播放按钮。
我测试了应用程序,录音机工作正常(我使用“Windows phone power tools”从 WP 模拟器的隔离存储中获取 tempAudio.wav 并且可以播放此音频文件),但播放按钮没有播放声音,我找不到 btPlay 按钮有什么问题:(
XAML 代码(两个按钮是来自 coding4fun 工具包的圆形按钮和圆形按钮)
<StackPanel Orientation="Horizontal">
<toolkit1:RoundToggleButton x:Name="btRecorder" IconUri="..." Checked="btRecorder_Checked" checked="btRecorder_Unchecked"/>
<MediaElement x:Name="meVoicePlayer" AutoPlay="False"/>
<toolkit1:RoundButton x:Name="btPlay" Click="PlayAudio_Click" IconUri="..."/>
</StackPanel>
c#代码
MicrophoneRecorder recorder = new MicrophoneRecorder();
private void btRecorder_Checked(object sender, RoutedEventArgs e)
{
recorder.Start();
}
private void btRecorder_Unchecked(object sender, RoutedEventArgs e)
{
recorder.Stop();
SaveTempAudio(recorder.Buffer);
}
public void SaveTempAudio(MemoryStream buffer)
{
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
var bytes = buffer.GetWavAsByteArray(recorder.SampleRate);
using (IsolatedStorageFileStream audio = new IsolatedStorageFileStream("TempAudio.wav",FileMode.Create,isf))
{
audio.Write(bytes, 0, bytes.Length);
}
}
}
private void PlayAudio_Click(object sender, RoutedEventArgs e)
{
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream audio = new IsolatedStorageFileStream("TempAudio.wav",FileMode.Open,isf))
{
meVoicePlayer.Stop();
meVoicePlayer.SetSource(audio);
meVoicePlayer.Position = new TimeSpan(0, 0, 0, 0);
meVoicePlayer.Play();
}
}
}
【问题讨论】:
标签: c# windows-phone-8 isolatedstorage mediaelement