在具有媒体元素的独立存储中播放wav文件

本文关键字:存储 播放 wav 文件 独立 媒体 元素 | 更新日期: 2023-09-27 18:00:09

我创建了一个小应用程序来录制和播放语音,用这个代码制作了一个录制按钮和一个播放按钮。

我测试了应用程序,录音机工作正常(我使用"Windows手机电源工具"从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();
            }
        } 
    }

在具有媒体元素的独立存储中播放wav文件

您提到的是Emulator。这是唯一一个不播放音频的地方吗?在这种情况下,答案很简单:MediaElement不支持Emulator中的播放。请参阅平台说明:msdn 上的"Silverlight for Windows Phone"

您必须使用"Emulator 8.0 Update 3 WVGA 512MB"。它工作良好