Windows Phone 8.1 多媒体(3):音乐
Windows Phone 8.1 多媒体(1):相片
Windows Phone 8.1 多媒体(2):视频
Windows Phone 8.1 多媒体(3):音乐
(1)前台
说是前台,其实音乐的播放都是利用系统后台的 BackgroundMediaPlayer:
BackgroundMediaPlayer.Current.SetUriSource(new Uri("ms-appx:///djlang59_-_Drops_of_H2O_(_The_Filtered_Water_Treatment_).mp3")); BackgroundMediaPlayer.Current.Play();
可以添加音乐播放状态改变事件:
BackgroundMediaPlayer.Current.CurrentStateChanged += MediaPlayerStateChanged;private async void MediaPlayerStateChanged(MediaPlayer sender, object args {await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>{switch( BackgroundMediaPlayer.Current.CurrentState ){case MediaPlayerState.Stopped:AppBarBtnPause.IsEnabled = false;AppBarBtnStop.IsEnabled = false;break;case MediaPlayerState.Playing:AppBarBtnPause.IsEnabled = true;AppBarBtnStop.IsEnabled = true;BackgroundMediaPlayer.SendMessageToBackground(new ValueSet{{"Title", "Drops of H2O"},{"Artist", "J.Lang"},});break;case MediaPlayerState.Paused:AppBarBtnPause.IsEnabled = false;break;}}); }
其中 BackgroundMediaPlayer.SendMessageToBackground 方法可以向后台音乐播放程序发送消息,可在后台程序中添加处理事件:
BackgroundMediaPlayer.MessageReceivedFromForeground += BackgroundMediaPlayerOnMessageReceivedFromForeground;private void BackgroundMediaPlayerOnMessageReceivedFromForeground(object sender, MediaPlayerDataReceivedEventArgs e) {systemmediatransportcontrol.DisplayUpdater.Type = MediaPlaybackType.Music;systemmediatransportcontrol.DisplayUpdater.MusicProperties.Title = e.Data["Title"].ToString();systemmediatransportcontrol.DisplayUpdater.MusicProperties.Artist = e.Data["Artist"].ToString();systemmediatransportcontrol.DisplayUpdater.Update(); }
(2)后台
这里说的后台是指 SystemMediaTransportControls,也就是按下音量键后顶部弹出的控制音乐播放的控件。
1)新建 Windows Runtime Component 和继承 IBackgroundTask 的后台类
A:Run 方法中可设置 SystemMediaTransportControls 的各个按键属性以及事件的订阅(比如下一曲按钮可不可用,状态更改事件等)
public void Run(IBackgroundTaskInstance taskInstance) {systemmediatransportcontrol = SystemMediaTransportControls.GetForCurrentView();systemmediatransportcontrol.ButtonPressed += SystemControlsButtonPressed;systemmediatransportcontrol.IsEnabled = true;systemmediatransportcontrol.IsPauseEnabled = true;systemmediatransportcontrol.IsStopEnabled = true;systemmediatransportcontrol.IsPlayEnabled = true;BackgroundMediaPlayer.Current.CurrentStateChanged -= BackgroundMediaPlayerCurrentStateChanged;BackgroundMediaPlayer.MessageReceivedFromForeground -= BackgroundMediaPlayerOnMessageReceivedFromForeground;BackgroundMediaPlayer.Current.CurrentStateChanged += BackgroundMediaPlayerCurrentStateChanged;BackgroundMediaPlayer.MessageReceivedFromForeground += BackgroundMediaPlayerOnMessageReceivedFromForeground;deferral = taskInstance.GetDeferral(); }
B:事件的处理
private void BackgroundMediaPlayerCurrentStateChanged(MediaPlayer sender, object args) {if (sender.CurrentState == MediaPlayerState.Playing){systemmediatransportcontrol.PlaybackStatus = MediaPlaybackStatus.Playing;}else if (sender.CurrentState == MediaPlayerState.Paused){systemmediatransportcontrol.PlaybackStatus = MediaPlaybackStatus.Paused;} }private static void SystemControlsButtonPressed(SystemMediaTransportControls sender, SystemMediaTransportControlsButtonPressedEventArgs args) {switch (args.Button){case SystemMediaTransportControlsButton.Play:BackgroundMediaPlayer.Current.Play();break;case SystemMediaTransportControlsButton.Pause:BackgroundMediaPlayer.Current.Pause();break;case SystemMediaTransportControlsButton.Stop:BackgroundMediaPlayer.Current.Pause();BackgroundMediaPlayer.Current.Position = TimeSpan.FromSeconds(0);break;} }
2)前台应用添加上一步新建的后台任务
转载于:https://www.cnblogs.com/lonelyxmas/p/3790746.html
Windows Phone 8.1 多媒体(3):音乐相关推荐
- 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能...
原文:与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能 [源码下载] 与众不同 windows phone (40 ...
- Python调用Windows API函数编写录音机和音乐播放器
功能描述: 1)使用tkinter设计程序界面: 2)调用Windows API函数实现录音机和音乐播放器. 参考代码: . 运行界面:
- 计算机和音乐结合的作品,用计算机创作多媒体作品──音乐和声音张燕.doc
PAGE / NUMPAGES 用计算机创作多媒体作品──音乐和声音 [教学背景] 本课题是初中信息技术下册第八章第3节内容的细化,学习对象是八年级学生,这些学生在小学的学习阶段已经掌握了一定的Pow ...
- HMI-53-【多媒体】音乐播放器 2
HMI-53-[多媒体]音乐播放器 2 今天我们接着搞我们的音乐播放器,今天我把们昨天剩下的那些布局搞一搞,后面再实现细节,今天我们把下面的菜单和逻辑实现了,以及上次漏掉的右上角的子菜单按钮. 当 ...
- HMI-56-【多媒体】音乐播放器 5
HMI-56-[多媒体]音乐播放器 5 上一篇中实现了音乐播放的后台线程,夜里睡觉也没有睡踏实,总是感觉不合适,所以今天还是决定重新搞一下. 当前进度 播放音乐将做成一个共有的类,放在Core ...
- HMI-54-【多媒体】音乐播放器 3
HMI-54-[多媒体]音乐播放器 3 今天我们接着搞音乐播放器,今天我们实现这个中心的音乐播放器.也就是这个歌曲信息,上一曲下一曲暂停,播放进度啥的. 当前进度 音乐播放器基本都可以使用了, ...
- HMI-55-【多媒体】音乐播放器 4
HMI-55-[多媒体]音乐播放器 4 今天我们接着搞音乐播放器,今天主要实现音乐播放器的播放音频功能 当前进度 今天已经使用QMediaPlayer实现了音频文件的播放,但是效果不是很理想, ...
- HMI-52-【多媒体】音乐播放器 1
HMI-52-[多媒体]音乐播放器 1 今天我们搞音乐播放器,哎嗨,这个东西要是往细碎了搞,事情还真不少,今天就先努力实现面上的内容. 当前进度 当前实现了多媒体下的五个子菜单切换,和返回主页 ...
- VFP调用Windows Media Player控件播放音乐、视频等
*--VFP调用Windows Media Player控件播放音乐.视频等 *--控件名称:Windows Media Player *--控件文件名:wmp.dll *--控件ProgID:WMP ...
最新文章
- 服装企业信息化计算机化的趋势,服装企业信息化建设的研究.pdf
- 【系统篇】从int 3探索Windows应用程序调试原理
- $.getJSON无法对外部变量进行赋值的问题
- Source Insight中的正则表达式和快捷键
- 基于LQR的车辆LKA算法设计
- Java加密体系结构(JCA)参考指南
- 金融分析(三)------联合分布,边缘分布,条件概率密度
- IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。
- 鸿蒙 林蒙 秦羽,从主神归来的主角们
- 《群山唱响》-- 爱的力量
- 知乎上那些简短却让你印象深刻的回答
- 栈的应用 括号匹配 c++
- 《孩子,为你自己读书》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+多多图书馆+志存当高远+读万卷书如行万里路+术业有专攻+读书是对思想的一种升华+立钻哥哥++==)
- c语言编程 菲薄拉,C语言设计模式-封装-继承-多态
- 【TP5.1】商品列表加载
- 正则表达式匹配电话号码
- 服务器阵列工作原理,阵列卡的工作原理
- 小学计算机资格证教案模板,小学数学教师资格证教学设计通用模板
- 安卓手机阅读器_这可能就是你要找的全功能电子书阅读器
- 2015,GECCO,Comparison of Semantic-aware Selection Methods in Genetic Programming
热门文章
- php radius类,PHP Radius Search
- bat从数组中找出相同数字并删除_全网把Map中的hash()分析的最透彻的文章,别无二家...
- 【算法】排序算法——归并排序
- HTML-meta标签
- leetcode —— 1038. 从二叉搜索树到更大和树
- 操作系统 ——进程的状态与转换
- 吴恩达深度学习 —— 2.4 梯度下降
- 中国计算机学会推荐的国际学术刊物
- 类型全部为string_TypeScript 高级类型总结(含代码案例)
- android布局添加背景颜色,android-获取布局的背景色