示例1
private DelegateCommand _PlaySoundCommand; public DelegateCommand PlaySoundCommand => _PlaySoundCommand ?? (_PlaySoundCommand = new DelegateCommand(ExecutePlaySoundCommand)); private void ExecutePlaySoundCommand() { try { MediaPlayer player = new MediaPlayer(); string url = "E:\\ss\\a.mp3"; Uri uri = new Uri(url, UriKind.RelativeOrAbsolute); player.MediaOpened += Player_MediaOpened; ; player.MediaFailed += Player_MediaFailed; ; player.Open(uri); player.Play(); } catch (Exception ex) { } } private void Player_MediaFailed(object sender, ExceptionEventArgs e) { } private void Player_MediaOpened(object sender, EventArgs e) { }
示例2
private DelegateCommand _PlaySoundCommand; public DelegateCommand PlaySoundCommand => _PlaySoundCommand ?? (_PlaySoundCommand = new DelegateCommand(ExecutePlaySoundCommand)); private void ExecutePlaySoundCommand() { try { MediaPlayer player = new MediaPlayer();
//无法播放报错 "System.NotSupportedException: Only site-of-origin pack URIs are supported for media." string url = "pack://application:,,,/DMData.Monitor.Modules.ModuleName;component/ss/a.mp3"; Uri uri = new Uri(url, UriKind.RelativeOrAbsolute); player.MediaOpened += Player_MediaOpened; ; player.MediaFailed += Player_MediaFailed; ; player.Open(uri); player.Play(); //MediaElement mediaElement = new MediaElement(); //Uri uri = new Uri("pack://application:,,,/DMData.Monitor.Modules.ModuleName;component/ss/a.mp3"); //mediaElement.Source = uri; //mediaElement.LoadedBehavior = MediaState.Manual; //mediaElement.UnloadedBehavior = MediaState.Manual; //mediaElement.Volume = 1.0; // 设置为最大音量 //mediaElement.Play(); } catch (Exception ex) { } } private void Player_MediaFailed(object sender, ExceptionEventArgs e) { } private void Player_MediaOpened(object sender, EventArgs e) { }
解决
mp3设置为内容 进行输出
private DelegateCommand _PlaySoundCommand; public DelegateCommand PlaySoundCommand => _PlaySoundCommand ?? (_PlaySoundCommand = new DelegateCommand(ExecutePlaySoundCommand)); private void ExecutePlaySoundCommand() { try { MediaPlayer player = new MediaPlayer(); string url = "pack://siteoforigin:,,,/ss/a.mp3"; Uri uri = new Uri(url, UriKind.RelativeOrAbsolute); player.MediaOpened += Player_MediaOpened; ; player.MediaFailed += Player_MediaFailed; ; player.Open(uri); player.Play(); } catch (Exception ex) { } } private void Player_MediaFailed(object sender, ExceptionEventArgs e) { } private void Player_MediaOpened(object sender, EventArgs e) { }
方式3
mp3 设置为内容 进行输出
private DelegateCommand _PlaySoundCommand; public DelegateCommand PlaySoundCommand => _PlaySoundCommand ?? (_PlaySoundCommand = new DelegateCommand(ExecutePlaySoundCommand)); private void ExecutePlaySoundCommand() { try { MediaPlayer player = new MediaPlayer(); Uri uri = new Uri(AppDomain.CurrentDomain.BaseDirectory + "ss\\a.mp3"); player.MediaOpened += Player_MediaOpened; ; player.MediaFailed += Player_MediaFailed; ; player.Open(uri); player.Play(); } catch (Exception ex) { } } private void Player_MediaFailed(object sender, ExceptionEventArgs e) { } private void Player_MediaOpened(object sender, EventArgs e) { }
wpf siteoforigin 和application的区别
SiteOfOrigin和Application是WPF中的两个重要概念,它们有以下区别:
-
SiteOfOrigin(来源站点):指的是XAP文件所在的位置,即WPF应用程序的部署位置。在SiteOfOrigin中,能够访问的资源是受信任的,可以直接访问SiteOfOrigin中的任何资源,其中包括应用程序所需的所有文件和资源。SiteOfOrigin通常是存在于本地计算机或者网络上的一个文件夹或者网站,在应用程序启动时被加载。
-
Application(应用程序):指的是WPF应用程序本身。Application是一个关于应用程序的类,包含了应用程序的各种属性和方法,用于控制应用程序的行为和外观。可以通过Application类来配置应用程序的外观、行为和行为响应方式,也可以通过它来访问资源、设置应用程序范围内的全局变量等。在WPF中,一个应用程序可以有多个Application对象,它们可以是相互独立的,也可以是共享全局资源的。
综上所述,SiteOfOrigin和Application的区别主要在于它们所代表的不同概念。SiteOfOrigin指的是XAP文件所在的位置,即WPF应用程序的部署位置,它代表了应用程序所在的地方,包含了应用程序的所有文件和资源;而Application是一个关于应用程序的类,它代表了WPF应用程序本身,包含了应用程序的属性和方法,用于控制应用程序的行.
为了更清楚地理解SiteOfOrigin和Application的区别,可以从以下几个方面进行比较:
-
访问权限:SiteOfOrigin中的资源是受信任的,可以直接访问,而Application中的资源可能需要通过代码逻辑或权限控制进行访问。
-
部署位置:SiteOfOrigin指的是XAP文件的存放位置,可以是本地计算机的文件夹或者网络上的一个网站。而Application是应用程序本身,可以独立部署在不同的设备上。
-
资源访问范围:SiteOfOrigin中的资源包括XAP文件中的所有文件和资源,可以在应用程序中直接引用。而Application中的资源通常指的是应用程序内部定义的资源,只能在应用程序内部的代码中使用。
-
生命周期:SiteOfOrigin中的资源的生命周期与XAP文件的存在期限相同,一旦XAP文件被删除或移动,SiteOfOrigin中的资源将无法访问。而Application在应用程序的执行过程中一直存在,其属性和方法可以在应用程序的整个生命周期中使用。
总体来说,SiteOfOrigin主要用于确定应用程序部署位置和访问受信任的资源,而Application是用于控制应用程序行为和访问应用程序
标签:PlaySoundCommand,Player,mediaplayer,应用程序,player,private,mp3,new,wpf From: https://www.cnblogs.com/JohnnyLei/p/17855327.html