Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试将自己的.wav文件播放到toast通知c#windows 8时出错_C#_Windows 8_Windows Runtime_Microsoft Metro_Toast - Fatal编程技术网

尝试将自己的.wav文件播放到toast通知c#windows 8时出错

尝试将自己的.wav文件播放到toast通知c#windows 8时出错,c#,windows-8,windows-runtime,microsoft-metro,toast,C#,Windows 8,Windows Runtime,Microsoft Metro,Toast,我在试着扮演一个角色。wav文件转换为toast通知。我的wav文件位于我的应用程序的本地文件夹中,但不幸的是,我遇到了以下异常:System.ArgumentException“请求的值'ms-appdata:///local/archivo.wav“没有找到。”有人能帮我吗? 这是我保存文件的代码 private async void guardarArchivo() { speak = new SpeechSynthesizer(idCliente, Client

我在试着扮演一个角色。wav文件转换为toast通知。我的wav文件位于我的应用程序的本地文件夹中,但不幸的是,我遇到了以下异常:System.ArgumentException“请求的值'ms-appdata:///local/archivo.wav“没有找到。”有人能帮我吗? 这是我保存文件的代码

 private async  void  guardarArchivo()
  {
        speak = new SpeechSynthesizer(idCliente, ClientSecret);
        speak.AudioFormat = SpeakStreamFormat.MP3;
        speak.AudioQuality = SpeakStreamQuality.MaxQuality;
        //  audio stream
        Nstream = await speak.GetSpeakStreamAsync(txtnota.Text, "es");

        inputStream = Nstream.GetInputStreamAt(0);
        DataReader datareader = new DataReader(inputStream);
        await datareader.LoadAsync((uint)Nstream.Size);
        byte[] buffer = new byte[(int)Nstream.Size];
        datareader.ReadBytes(buffer);
        var folder = Windows.Storage.ApplicationData.Current.LocalFolder;//Obtenemos el folder local donde se encuentra alojada la app
        var option = Windows.Storage.CreationCollisionOption.OpenIfExists;//Si no existe el archivo lo crea , si existe  no pasa nada , solo sobrescribre
        //Creamos el archivo
        var archivo = await folder.CreateFileAsync("archivo.wav", option);
        await FileIO.WriteBytesAsync(archivo, buffer);

        }
下面是我尝试创建toast通知的代码

 private  void btncrearclick(object sender, RoutedEventArgs e)
    {
        var toastContent = NotificationsExtensions.ToastContent.ToastContentFactory.CreateToastText01();
        toastContent.TextBodyWrap.Text =txtnota.Text;
        toastContent.Duration = ToastDuration.Long;
        //here is the error
        toastContent.Audio.Content = (ToastAudioContent)Enum.Parse(typeof(ToastAudioContent),"ms-appdata:///local/archivo.wav");
        var toast = toastContent.CreateNotification();
        ScheduledToastNotification toastnotificacion = new ScheduledToastNotification(toastContent.GetXml(), new DateTimeOffset(DateTime.Now.AddSeconds(5)));
        var toastNotifier = ToastNotificationManager.CreateToastNotifier();
        toastNotifier.AddToSchedule(toastnotificacion);         

    }

Toast扩展代码当前不允许您指定自己的文件

您必须使用以下枚举之一:

public enum ToastAudioContent
{
    Default = 0,
    Mail,
    SMS,
    IM,
    Reminder,
    LoopingCall,
    LoopingCall2,
    LoopingAlarm,
    LoopingAlarm2,
    Silent
}
因此,代码中的这一行:

toastContent.Audio.Content = (ToastAudioContent)
    Enum.Parse(typeof(ToastAudioContent),"ms-appdata:///local/archivo.wav");
应更改为使用其中一个枚举。例如,这将使用“邮件”声音作为祝酒词:

toastContent.Audio.Content = ToastAudioContent.Mail;