ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C# MediaPlayer

2019-11-02 21:06:18  阅读:352  来源: 互联网

标签:case break jsonContent C# mp3Player MediaPlayer ShowMsg JsonConvert


  1 using System.Windows.Media;
  2 using Newtonsoft.Json;
  3 using System.ComponentModel;
  4 
  5 namespace ConsoleApp378
  6 {
  7     class Program:INotifyPropertyChanged
  8     {
  9         static void Main(string[] args)
 10         {
 11             Program obj = new Program();
 12             obj.MediaPlayerDemo();
 13             Console.ReadLine(); 
 14         }
 15 
 16         static MediaPlayer mp3Player = new MediaPlayer();
 17         void MediaPlayerDemo()
 18         {
 19             string mp3Path = Directory.GetCurrentDirectory() + @"\MediaResource\StarSky.mp3";
 20             mp3Player.Open(new Uri(mp3Path));
 21             mp3Player.MediaEnded += Mp3Player_MediaEnded;
 22             Console.WriteLine(" Start:Y;Exit:Q;Amplify:A;Decrease:D;Pause:P;C:Acclerate;R:Replay from begining!");
 23             string line;
 24             while ((line = Console.ReadLine()) != null)
 25             {
 26                 ControlMediaPlayer(line[0]);
 27             }
 28         }
 29 
 30         private bool isMP3PlayerCompleted = false;
 31 
 32         public event PropertyChangedEventHandler PropertyChanged;
 33         private void OnPropertyChanged(string propName)
 34         {
 35             if(PropertyChanged!=null)
 36             {
 37                 PropertyChanged(this, new PropertyChangedEventArgs(propName));
 38             }
 39         }
 40 
 41         public bool ISMP3PlayerCompleted
 42         {
 43             get
 44             {
 45                 return isMP3PlayerCompleted;
 46             }
 47             set
 48             {
 49                 if(value!=isMP3PlayerCompleted)
 50                 {
 51                     isMP3PlayerCompleted = value;
 52                     OnPropertyChanged("ISMP3PlayerCompleted");
 53                 }
 54 
 55                 if(isMP3PlayerCompleted)
 56                 {
 57                     MessageBox.Show("Finished!");
 58                 }
 59             }
 60         }
 61         private  void Mp3Player_MediaEnded(object sender, EventArgs e)
 62         {
 63             ISMP3PlayerCompleted = true;
 64         }
 65 
 66         void ControlMediaPlayer(char c)
 67         {
 68             if (mp3Player != null && mp3Player.HasAudio)
 69             {
 70                 string jsonContent = ""; 
 71                 switch (c)
 72                 {
 73                     //Start
 74                     case 'Y':
 75                         mp3Player.Play();
 76                         jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
 77                         ShowMsg(jsonContent);
 78                         break;
 79 
 80                     //Exit
 81                     case 'Q':
 82                         mp3Player.Stop();
 83                         jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
 84                         ShowMsg(jsonContent);
 85                         break;
 86 
 87                     //Amplify 
 88                     case 'A':
 89                         mp3Player.Volume = mp3Player.Volume + 0.1;
 90                         jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
 91                         ShowMsg(jsonContent);
 92                         break;
 93 
 94                     //Decrease
 95                     case 'D':
 96                         mp3Player.Volume = mp3Player.Volume - 0.1;
 97                         jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
 98                         ShowMsg(jsonContent);
 99                         break;
100 
101                     //Pause
102                     case 'P':
103                         mp3Player.Pause();
104                         jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
105                         ShowMsg(jsonContent);
106                         break;
107 
108                     //Accelerate
109                     case 'C':
110                         mp3Player.SpeedRatio += 0.3;
111                         jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
112                         ShowMsg(jsonContent);
113                         break;
114 
115                     case 'L':
116                         mp3Player.SpeedRatio -= 0.3;
117                         jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
118                         ShowMsg(jsonContent);
119                         break;
120 
121                     //Replay
122                     case 'R':
123                         mp3Player.Position = default(TimeSpan);
124                         mp3Player.Play();
125                         jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
126                         ShowMsg(jsonContent);
127                         break;
128                 }
129             }
130         }
131 
132         void ShowMsg(string msg)
133         {
134             Console.WriteLine(msg);
135         }
136         void ShowStatus(MediaPlayer mPlayer)
137         {
138             if(mPlayer!=null)
139             {
140                 string msg = $"Position:{mp3Player.Position},SpeedRatio:{mp3Player.SpeedRatio},IsMuted:{mp3Player.IsMuted}," +
141                     $"ScrubbingEnabled:{mp3Player.ScrubbingEnabled},Balance:{mp3Player.Balance},NaturalVideoWidth:{mp3Player.NaturalVideoWidth}"
142                     + $"Source:{mp3Player.Source}";
143                 Console.WriteLine(msg);
144             }
145         }
146 }

 

标签:case,break,jsonContent,C#,mp3Player,MediaPlayer,ShowMsg,JsonConvert
来源: https://www.cnblogs.com/Fred1987/p/11784027.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有