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的更多相关文章

  1. Mediaplayer error (-19,0)

    Android MediaPlayer 发生 error (-19,0) 错误解决方法. 引起原因:由于多次实例化MediaPlayer.start() 进行播放操作引起的.由于没有及时释放内存资源导 ...

  2. 关于从Activity A跳转到Activity B ,其中Activity A中有一个VideoView,Activity B中有一个MediaPlayer。

    两个不同的视频的跳转, 前面我是在onStop()方法中销毁VideoView(因为MediaPlayer是全局共用的,而VideoView内包含MediaPlayer),但是每次进入Activity ...

  3. Android四大组件--MediaPlayer详解(转)

    一. MediaPlayer 状态机 介绍 Android MediaPlayer 状态即图例 : 1. Idle (闲置) 状态 和 End (结束) 状态 MediaPlayer 对象声明周期 : ...

  4. Android音视频之MediaPlayer音视频播放

    前言: 昨天总结了视频录制,今天来学习一下视频的播放,Android的视频播放主要采用MediaPlayer类. MediaPlayer介绍 MediaPlayer类可用于控制音频/视频文件或流的播放 ...

  5. Android音频开发之MediaRecorder/MediaPlayer

    前言: 上次我们介绍了实时采集音频数据以及播放,今天我们来认识一下直接录制文件的方式. 直接上代码:录制管理类 public class MediaRecorderManager { public s ...

  6. WPF语音播放MediaPlayer

    private MediaPlayer player; public MainWindow() { InitializeComponent(); player = new MediaPlayer(); ...

  7. android下面使用SurfaceView+ mediaPlayer播放视频

    final SurfaceView surfaceView = new SurfaceView(StartupActivity.this); StartupActivity.this.mediaPla ...

  8. SAP播放本地视频及音频(仅限于window MediaPlayer可播放文件)

    这个是从SCN上看到的,自己稍加修改,编制,做的还可以,可以播放视频,音频,唯一的不足就是不能控制播放视频的显示窗口大小,希望有人能帮忙解决,感激! 视频播放类:(新建类Z_CL_MEDIA,点击基于 ...

  9. [原创]WPF应用MediaPlayer播放声音断续、不全解决方案

    1.检查扬声器和驱动程序. 测试方法:首先,应用Windows Media Player播放器播放,看是否有问题,如果有问题,基本断定是驱动程序问题.其次,点击扬声器,选择测试,查看扬声器是否好用,如 ...

  10. Android MediaPlayer的生命周期

    MediaPlayer的状态转换图也表征了它的生命周期,如下: 这张状态转换图清晰的描述了MediaPlayer的各个状态,也列举了主要的方法的调用时序,每种方法只能在一些特定的状态下使用,如果使用时 ...

随机推荐

  1. [译]Vulkan教程(28)Image视图和采样器

    [译]Vulkan教程(28)Image视图和采样器 Image view and sampler - Image视图和采样器 In this chapter we're going to creat ...

  2. python强大的绘图模块matplotlib示例讲解

    Matplotlib 是 Python 的绘图库.作为程序员,经常需要进行绘图,在我自己的工作中,如果需要绘图,一般都是将数据导入到excel中,然后通过excel生成图表,这样操作起来还是比较繁琐的 ...

  3. go语言之数据类型和格式化输出

    1.数据类型 package main import ( "fmt" "reflect" ) func main() { //整形 var v1 int32 v ...

  4. Java每日一面(Part1:计算机网络)[19/10/21]

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.UDP简介 1.1UDP报文结构: ​ Source Port:源端口 Destination Port:目标端口 Length:数据包长度 C ...

  5. IIFE,回调函数

    回调函数: 当函数A作为一个参数在函数B中被调用时,就称A为B的回调函数 IIFE:匿名函数自调用 (function(){})() 作用:防止污染全局命名空间 隐藏实现

  6. IDEA 运行后乱码问题解决

    页面乱码: 在edit configurations->vm options 添加 -Dfile.encoding=UTF-8 调整idea文件编码格式,全部为 UTF-8 (file -> ...

  7. ORM优化查询、choices参数

    目录 ORM查询优化 only与defer select_related和prefetch_related MTV与MVC模型 choices参数 ORM查询优化 only与defer res = m ...

  8. Python3——根据m3u8下载视频(上)之urllib.request

    干活干活,区区懒癌已经阻挡不了澎湃的洪荒之力了...... 运行环境:Windows基于python3.6 ---------------------------------------------- ...

  9. Java使用JDBC连接SQL Server数据库

    Java使用JDBC连接SQL Server数据库 1.下载驱动 1.下载Microsoft SQL Server JDBC 驱动程序 https://docs.microsoft.com/zh-cn ...

  10. vscode 问题。。。。

    "program": "${workspaceFolder}/a.out", "preLaunchTask": "build&qu ...