【问题标题】:Windows Phone 8.1 Load Sound Issue with StreamResourceInfoWindows Phone 8.1 使用 StreamResourceInfo 加载声音问题
【发布时间】:2015-08-27 06:43:36
【问题描述】:

我正在将应用程序从 WP7 转换为 WP8.1 WP7 的代码不再适用于 WP8.1

        sfxLeft = new MediaElement();
        sfxRight = new MediaElement();
        StreamResourceInfo streamInfo = Application.GetResourceStream(new Uri(wav, UriKind.Relative));

        var sfx = SoundEffect.FromStream(streamInfo.Stream);

        sfxLeft = sfx.CreateInstance();
        sfxRight = sfx.CreateInstance();

WP8.1 不再存在 StreamResourceInfo。任何人都知道我可以如何重写这一行以使其适用于 WP8.1?

更新代码。

这是下面的新代码,但现在 sfxLeft 和 sfxRight 似乎始终为 NULL。我以为下面的代码会设置 sfxLeft 和 sfxRight,但它仍然是 NULL。

        protected override void OnNavigatedTo(NavigationEventArgs e)
    {

        test();

    }

    async private Task test()
    {
        Uri wav = new Uri("ms-appx:///Assets/eye_poke.wav", UriKind.RelativeOrAbsolute);

        StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(wav);

        stream = await file.OpenStreamForReadAsync();

        sfxLeft = SoundEffect.FromStream(stream).CreateInstance();
        sfxRight = SoundEffect.FromStream(stream).CreateInstance();
    }

【问题讨论】:

    标签: c# .net visual-studio windows-phone-7 windows-phone-8


    【解决方案1】:

    在 Windows Phone 8.1 Silverlight App 中使用 XNA Framework 播放声音

    StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(wav);
    Stream stream = await file.OpenStreamForReadAsync();
    SoundEffect Sound1 = SoundEffect.FromStream(stream);
    FrameworkDispatcher.Update();
    Sound1.Play();
    

    或者您可以将 MediaElement 用于 RT 和 Silverlight,但它们位于不同的命名空间中,

    MediaElement mediaElement1 = new MediaElement();
    mediaElement1.Source = wav
    mediaElement1.AutoPlay = false;
    rootGrid.Children.Add(mediaElement1)
    

    【讨论】:

    • 它不起作用。我正在使用 WP 8.1(通用应用程序)Sytax 似乎已关闭
    • 你能成功构建项目吗?据我所知,SoundEffect 是 XNA 框架的一部分,您不能在 Universal App (win phone 8.1) 中使用 XNA 媒体库
    • @amarankes 编辑了我的答案。检查是否有帮助。
    【解决方案2】:

    谢谢。我通过使用 XAML 中的媒体元素,然后在 c# 中添加代码来播放它。

    【讨论】:

    • 您不能在同一页面上同时使用两个媒体元素。
    猜你喜欢
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 2015-11-13
    • 2023-03-26
    相关资源
    最近更新 更多