MediaPlayerElement在PC上不播放声音,但在Phone上播放声音

时间:2019-05-05 11:26:31

标签: c# xaml uwp windows-store-apps

我已经在XAML中设置了MediaPlayerElement,并且从“音乐”文件夹中播放了一些声音,当我在手机上测试它但在我的计算机上没有出现此错误消息时,它可以工作:

错误:视频类型或文件路径不受支持

我在Google上搜索了一段时间,一些建议说应该安装该应用程序,以便能够访问文件(例如音乐文件)

这是XAML:

  ((\a b -> 3) <*> (+)) x
= (\a b -> 3) x (x+)
= (\b -> 3) (x+)
= 3

  (((\a b -> a + b) <*> (+)) x
= (\a b -> a + b) x (x+)
= x + (x+)
= type error

关于C#:

<MediaPlayerElement Name="mediaPlayerElement" AutoPlay="False" AreTransportControlsEnabled="True" Stretch="UniformToFill"/>
private void playSound(object sender, ItemClickEventArgs e)
        {// triggered when I click a sound
            var soundToPlay = (Sound)e.ClickedItem;
            mediaPlayer.Source = MediaSource.CreateFromUri(new Uri(this.BaseUri, soundToPlay.Path.ToString()));
            mediaPlayerElement.SetMediaPlayer(mediaPlayer);;
        }

当我调试此代码时;事实证明

public class Sound
    {
        public string Title { get; set; }
        public string Path { get; set; }
        public string Duration { get; set; }
        public ImageSource Poster { get; set; }
    }// and there is a class to get List<Sound>

指向声音的确切位置!

1 个答案:

答案 0 :(得分:0)

错误信息显示“不支持的视频类型或文件路径”,因此,首先解决此问题的方法是使用存储文件而不是路径:

mediaPlayer.Source = MediaSource.CreateFromStorageFile(videoFile);

实际上我们需要避免使用路径。使用StorageItems类(即StorageFolder和StorageFile)的UWP,它通过代理进程对文件具有完全特权。它代表一个文件,但不仅限于文件系统对象,该应用程序处理StorageFile,无需知道或关心数据是来自磁盘还是另一个应用程序。这样,您处理文件就更加容易。