C# MediaPlayer
using System.Windows.Media;
using Newtonsoft.Json;
using System.ComponentModel; namespace ConsoleApp378
{
class Program:INotifyPropertyChanged
{
static void Main(string[] args)
{
Program obj = new Program();
obj.MediaPlayerDemo();
Console.ReadLine();
} static MediaPlayer mp3Player = new MediaPlayer();
void MediaPlayerDemo()
{
string mp3Path = Directory.GetCurrentDirectory() + @"\MediaResource\StarSky.mp3";
mp3Player.Open(new Uri(mp3Path));
mp3Player.MediaEnded += Mp3Player_MediaEnded;
Console.WriteLine(" Start:Y;Exit:Q;Amplify:A;Decrease:D;Pause:P;C:Acclerate;R:Replay from begining!");
string line;
while ((line = Console.ReadLine()) != null)
{
ControlMediaPlayer(line[]);
}
} private bool isMP3PlayerCompleted = false; public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propName)
{
if(PropertyChanged!=null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propName));
}
} public bool ISMP3PlayerCompleted
{
get
{
return isMP3PlayerCompleted;
}
set
{
if(value!=isMP3PlayerCompleted)
{
isMP3PlayerCompleted = value;
OnPropertyChanged("ISMP3PlayerCompleted");
} if(isMP3PlayerCompleted)
{
MessageBox.Show("Finished!");
}
}
}
private void Mp3Player_MediaEnded(object sender, EventArgs e)
{
ISMP3PlayerCompleted = true;
} void ControlMediaPlayer(char c)
{
if (mp3Player != null && mp3Player.HasAudio)
{
string jsonContent = "";
switch (c)
{
//Start
case 'Y':
mp3Player.Play();
jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
ShowMsg(jsonContent);
break; //Exit
case 'Q':
mp3Player.Stop();
jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
ShowMsg(jsonContent);
break; //Amplify
case 'A':
mp3Player.Volume = mp3Player.Volume + 0.1;
jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
ShowMsg(jsonContent);
break; //Decrease
case 'D':
mp3Player.Volume = mp3Player.Volume - 0.1;
jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
ShowMsg(jsonContent);
break; //Pause
case 'P':
mp3Player.Pause();
jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
ShowMsg(jsonContent);
break; //Accelerate
case 'C':
mp3Player.SpeedRatio += 0.3;
jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
ShowMsg(jsonContent);
break; case 'L':
mp3Player.SpeedRatio -= 0.3;
jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
ShowMsg(jsonContent);
break; //Replay
case 'R':
mp3Player.Position = default(TimeSpan);
mp3Player.Play();
jsonContent = JsonConvert.SerializeObject(mp3Player, Formatting.Indented);
ShowMsg(jsonContent);
break;
}
}
} void ShowMsg(string msg)
{
Console.WriteLine(msg);
}
void ShowStatus(MediaPlayer mPlayer)
{
if(mPlayer!=null)
{
string msg = $"Position:{mp3Player.Position},SpeedRatio:{mp3Player.SpeedRatio},IsMuted:{mp3Player.IsMuted}," +
$"ScrubbingEnabled:{mp3Player.ScrubbingEnabled},Balance:{mp3Player.Balance},NaturalVideoWidth:{mp3Player.NaturalVideoWidth}"
+ $"Source:{mp3Player.Source}";
Console.WriteLine(msg);
}
}
}
C# MediaPlayer的更多相关文章
- Mediaplayer error (-19,0)
Android MediaPlayer 发生 error (-19,0) 错误解决方法. 引起原因:由于多次实例化MediaPlayer.start() 进行播放操作引起的.由于没有及时释放内存资源导 ...
- 关于从Activity A跳转到Activity B ,其中Activity A中有一个VideoView,Activity B中有一个MediaPlayer。
两个不同的视频的跳转, 前面我是在onStop()方法中销毁VideoView(因为MediaPlayer是全局共用的,而VideoView内包含MediaPlayer),但是每次进入Activity ...
- Android四大组件--MediaPlayer详解(转)
一. MediaPlayer 状态机 介绍 Android MediaPlayer 状态即图例 : 1. Idle (闲置) 状态 和 End (结束) 状态 MediaPlayer 对象声明周期 : ...
- Android音视频之MediaPlayer音视频播放
前言: 昨天总结了视频录制,今天来学习一下视频的播放,Android的视频播放主要采用MediaPlayer类. MediaPlayer介绍 MediaPlayer类可用于控制音频/视频文件或流的播放 ...
- Android音频开发之MediaRecorder/MediaPlayer
前言: 上次我们介绍了实时采集音频数据以及播放,今天我们来认识一下直接录制文件的方式. 直接上代码:录制管理类 public class MediaRecorderManager { public s ...
- WPF语音播放MediaPlayer
private MediaPlayer player; public MainWindow() { InitializeComponent(); player = new MediaPlayer(); ...
- android下面使用SurfaceView+ mediaPlayer播放视频
final SurfaceView surfaceView = new SurfaceView(StartupActivity.this); StartupActivity.this.mediaPla ...
- SAP播放本地视频及音频(仅限于window MediaPlayer可播放文件)
这个是从SCN上看到的,自己稍加修改,编制,做的还可以,可以播放视频,音频,唯一的不足就是不能控制播放视频的显示窗口大小,希望有人能帮忙解决,感激! 视频播放类:(新建类Z_CL_MEDIA,点击基于 ...
- [原创]WPF应用MediaPlayer播放声音断续、不全解决方案
1.检查扬声器和驱动程序. 测试方法:首先,应用Windows Media Player播放器播放,看是否有问题,如果有问题,基本断定是驱动程序问题.其次,点击扬声器,选择测试,查看扬声器是否好用,如 ...
- Android MediaPlayer的生命周期
MediaPlayer的状态转换图也表征了它的生命周期,如下: 这张状态转换图清晰的描述了MediaPlayer的各个状态,也列举了主要的方法的调用时序,每种方法只能在一些特定的状态下使用,如果使用时 ...
随机推荐
- 剑指Offer-45.扑克牌顺子(C++/Java)
题目: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定 ...
- ubuntu下面安装nodejs
对于刚接触ubuntu的同学来说,一切都是新的,一切都是那么熟悉而又不熟悉的.不管是作为一个前端工程师还是一个后端工程师,我相信大家知道nodejs,但是如果希望自己能够在ubuntu上面使用node ...
- SpringCloud gateway (史上最全)
疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之 -25[ 博客园 总入口 ] 前言 ### 前言 疯狂创客圈(笔者尼恩创建的高并发研习社群)Springcloud 高并发系列文章,将为大家 ...
- 几种常见的css布局_l流体布局、圣杯布局、双飞翼布局
1.流体布局: <!DOCTYPE html><html> <head> <meta charset="utf-8"> <ti ...
- (六十三)c#Winform自定义控件-箭头(工业)-HZHControls
官网 http://www.hzhcontrols.com 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kww ...
- 【UWP】仅在TextBlock文本溢出时显示Tooltip
前言 这是我今天在回答SO问题时偶然遇到的,觉得可能还比较通用,就记录下来以供参考. 通常,我们使用ToolTip最简单的方式是这样: <TextBlock Text="Test&qu ...
- c#时间戳相互转换
/// <summary> /// 获取时间戳 /// </summary> /// <returns></returns> public static ...
- CSS3动画的使用
0921自我总结 CSS3动画的使用 一.动画的创建 @keyframes规则是创建动画 浏览器兼容 1.@keyframes myfirst 2.@-webkit-keyframes myfirst ...
- 练手爬虫用urllib模块获取
练手爬虫用urllib模块获取 有个人看一段python2的代码有很多错误 import re import urllib def getHtml(url): page = urllib.urlope ...
- SAP depreciation key config
正常折旧 Configure 1.分配总帐科目 spro进入后台配置 –> Financial Accounting(New) –> Asset Accounting –> Depr ...