簡體   English   中英

使用媒體元素在隔離的存儲中播放WAV文件

[英]Play wav file in isolated storage with media element

我創建了一個小應用程序來記錄和播放聲音,使用此代碼創建一個錄音按鈕和一個播放按鈕。

我測試了該應用程序,錄音機運行正常(我使用“ Windows Phone電動工具”從WP仿真器的隔離存儲中獲取了tempAudio.wav,並且可以播放此音頻文件),但是播放按鈕沒有播放聲音,我可以用btPlay按鈕找不到任何問題:(

XAML代碼(兩個按鈕分別是來自coding4fun工具包的roundtoggle按鈕和round button)

<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();
            }
        } 
    }

您提到的是模擬器。 這是唯一的地方,您的音頻無法播放嗎? 在這種情況下,答案很簡單:MediaElement不支持在模擬器中播放。 請參閱msdn上的平台說明:“ Windows Phone的Silverlight”

您必須使用“ Emulator 8.0 Update 3 WVGA 512MB”。 工作正常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM