首页 > 其他分享 >wpf mediaplayer 播放mp3音乐

wpf mediaplayer 播放mp3音乐

时间:2023-11-25 11:34:40浏览次数:30  
标签:PlaySoundCommand Player mediaplayer 应用程序 player private mp3 new wpf

示例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中的两个重要概念,它们有以下区别:

  1. SiteOfOrigin(来源站点):指的是XAP文件所在的位置,即WPF应用程序的部署位置。在SiteOfOrigin中,能够访问的资源是受信任的,可以直接访问SiteOfOrigin中的任何资源,其中包括应用程序所需的所有文件和资源。SiteOfOrigin通常是存在于本地计算机或者网络上的一个文件夹或者网站,在应用程序启动时被加载。

  2. Application(应用程序):指的是WPF应用程序本身。Application是一个关于应用程序的类,包含了应用程序的各种属性和方法,用于控制应用程序的行为和外观。可以通过Application类来配置应用程序的外观、行为和行为响应方式,也可以通过它来访问资源、设置应用程序范围内的全局变量等。在WPF中,一个应用程序可以有多个Application对象,它们可以是相互独立的,也可以是共享全局资源的。

综上所述,SiteOfOrigin和Application的区别主要在于它们所代表的不同概念。SiteOfOrigin指的是XAP文件所在的位置,即WPF应用程序的部署位置,它代表了应用程序所在的地方,包含了应用程序的所有文件和资源;而Application是一个关于应用程序的类,它代表了WPF应用程序本身,包含了应用程序的属性和方法,用于控制应用程序的行.

为了更清楚地理解SiteOfOrigin和Application的区别,可以从以下几个方面进行比较:

  1. 访问权限:SiteOfOrigin中的资源是受信任的,可以直接访问,而Application中的资源可能需要通过代码逻辑或权限控制进行访问。

  2. 部署位置:SiteOfOrigin指的是XAP文件的存放位置,可以是本地计算机的文件夹或者网络上的一个网站。而Application是应用程序本身,可以独立部署在不同的设备上。

  3. 资源访问范围:SiteOfOrigin中的资源包括XAP文件中的所有文件和资源,可以在应用程序中直接引用。而Application中的资源通常指的是应用程序内部定义的资源,只能在应用程序内部的代码中使用。

  4. 生命周期:SiteOfOrigin中的资源的生命周期与XAP文件的存在期限相同,一旦XAP文件被删除或移动,SiteOfOrigin中的资源将无法访问。而Application在应用程序的执行过程中一直存在,其属性和方法可以在应用程序的整个生命周期中使用。

总体来说,SiteOfOrigin主要用于确定应用程序部署位置和访问受信任的资源,而Application是用于控制应用程序行为和访问应用程序

 

标签:PlaySoundCommand,Player,mediaplayer,应用程序,player,private,mp3,new,wpf
From: https://www.cnblogs.com/JohnnyLei/p/17855327.html

相关文章

  • WPF集合绑定与数据模板
    普通List集合数据绑定publicclassDataSource{publicstringName{get;set;}="Hello";publicObservableCollection<string>list{get;set;}=newObservableCollection<string>(){......
  • WPF数据绑定
    依赖对象做为数据源如果绑定的源是依赖对象的依赖属性,那么这个依赖属性发生实时变化的时候,会同步到绑定目标。如果绑定的源是非依赖属性,那么这个属性发生变化的的时候,不会同步到绑定目标。被绑定的数据源,需要是属性。<StackPanel><!--目标对象:TextBlock-->......
  • Mp3tag音轨号
    选取所有歌曲,点选「自动编号精灵」,准备将歌曲加上编号。 .勾选「音轨编号加入前导零(01,02…)」〈大部分的专辑都超过10首歌,加上前导比较整齐〉,点选「确定」。  点选「确定」。  点选「储存档案」的按钮。  更多见官网:https://docs.mp3tag.de/......
  • MP3 Tag id3(MP3标签 id3)
    MP3文件是由帧构成,帧是MP3文件的最小组成单位。根据帧性质的不同,文件大体分为四个部分:ID3v2标签帧、数据帧、APEV2标签帧、ID3v1标签帧,而只有数据帧才是必需的。数据帧包含了歌曲的压缩数据。标签帧提供了歌曲的演唱者、歌名、专辑、年份等信息。一、V1版本ID3v1在文件......
  • WPF使用多个ContextMenu菜单并绑定指定控件右键事件触发菜单,以及后台获取ContextMenu
    前端代码<Windowx:Class="EVES_ManualTest.CurveForm"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schema......
  • [WPF]动手写一个简单的消息对话框
    消息对话框是UI界面中不可或缺的组成部分,用于给用户一些提示,警告或者询问的窗口。在WPF中,消息对话框是系统原生(user32.dll)的MessageBox,无法通过Style或者Template来修改消息对话框的外观。因此,当需要一个与应用程序主题风格一致的消息对话框时,只能自己动手造轮子了。确定“轮子”......
  • wpf和winform的优缺点
    WPF(WindowsPresentationFoundation)和WinForm(WindowsForms)是两种不同的Windows应用程序开发框架。以下是它们的优缺点:WPF(优点):基于.NETFramework,与XAML语言结合,易于设计界面。强大的图形和动画功能,适用于创建具有丰富视觉效果的应用程序。支持Orientation和Resolution变化,......
  • WPF依赖附加属性
    依赖附加属性的定义可使用代码片段-propa快速生成,输入propa后按两次Tab键publicstaticintGetMyProperty(DependencyObjectobj){return(int)obj.GetValue(MyPropertyProperty);}publicstaticvoidSetMyProperty(Depende......
  • WPF --- 如何以Binding方式隐藏DataGrid列
    引言如题,如何以Binding的方式动态隐藏DataGrid列?预想方案像这样:先在ViewModel创建数据源People和控制列隐藏的IsVisibility,这里直接以MainWindow为DataContextpublicpartialclassMainWindow:Window,INotifyPropertyChanged{publicMainWindow(){......
  • 界面控件DevExpress WPF流程图组件,完美复制Visio UI!(一)
    DevExpressWPFDiagram(流程图)控件帮助用户完美复制MicrosoftVisioUI,并将信息丰富且组织良好的图表、流程图和组织图轻松合并到您的下一个WPF项目中。P.S:DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着......