Windows Phone 8.1 多媒体(3):音乐
原文: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)前台应用添加上一步新建的后台任务

posted on 2014-06-16 13:23 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/3790746.html

Windows Phone 8.1 多媒体(3):音乐相关推荐

  1. 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能...

    原文:与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能 [源码下载] 与众不同 windows phone (40 ...

  2. Python调用Windows API函数编写录音机和音乐播放器

    功能描述: 1)使用tkinter设计程序界面: 2)调用Windows API函数实现录音机和音乐播放器. 参考代码: . 运行界面:

  3. 计算机和音乐结合的作品,用计算机创作多媒体作品──音乐和声音张燕.doc

    PAGE / NUMPAGES 用计算机创作多媒体作品──音乐和声音 [教学背景] 本课题是初中信息技术下册第八章第3节内容的细化,学习对象是八年级学生,这些学生在小学的学习阶段已经掌握了一定的Pow ...

  4. HMI-53-【多媒体】音乐播放器 2

    HMI-53-[多媒体]音乐播放器 2 ​ 今天我们接着搞我们的音乐播放器,今天我把们昨天剩下的那些布局搞一搞,后面再实现细节,今天我们把下面的菜单和逻辑实现了,以及上次漏掉的右上角的子菜单按钮. 当 ...

  5. HMI-56-【多媒体】音乐播放器 5

    HMI-56-[多媒体]音乐播放器 5 ​ 上一篇中实现了音乐播放的后台线程,夜里睡觉也没有睡踏实,总是感觉不合适,所以今天还是决定重新搞一下. 当前进度 ​ 播放音乐将做成一个共有的类,放在Core ...

  6. HMI-54-【多媒体】音乐播放器 3

    HMI-54-[多媒体]音乐播放器 3 ​ 今天我们接着搞音乐播放器,今天我们实现这个中心的音乐播放器.也就是这个歌曲信息,上一曲下一曲暂停,播放进度啥的. 当前进度 ​ 音乐播放器基本都可以使用了, ...

  7. HMI-55-【多媒体】音乐播放器 4

    HMI-55-[多媒体]音乐播放器 4 ​ 今天我们接着搞音乐播放器,今天主要实现音乐播放器的播放音频功能 当前进度 ​ 今天已经使用QMediaPlayer实现了音频文件的播放,但是效果不是很理想, ...

  8. HMI-52-【多媒体】音乐播放器 1

    HMI-52-[多媒体]音乐播放器 1 ​ 今天我们搞音乐播放器,哎嗨,这个东西要是往细碎了搞,事情还真不少,今天就先努力实现面上的内容. 当前进度 ​ 当前实现了多媒体下的五个子菜单切换,和返回主页 ...

  9. VFP调用Windows Media Player控件播放音乐、视频等

    *--VFP调用Windows Media Player控件播放音乐.视频等 *--控件名称:Windows Media Player *--控件文件名:wmp.dll *--控件ProgID:WMP ...

最新文章

  1. 服装企业信息化计算机化的趋势,服装企业信息化建设的研究.pdf
  2. 【系统篇】从int 3探索Windows应用程序调试原理
  3. $.getJSON无法对外部变量进行赋值的问题
  4. Source Insight中的正则表达式和快捷键
  5. 基于LQR的车辆LKA算法设计
  6. Java加密体系结构(JCA)参考指南
  7. 金融分析(三)------联合分布,边缘分布,条件概率密度
  8. IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。
  9. 鸿蒙 林蒙 秦羽,从主神归来的主角们
  10. 《群山唱响》-- 爱的力量
  11. 知乎上那些简短却让你印象深刻的回答
  12. 栈的应用 括号匹配 c++
  13. 《孩子,为你自己读书》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+多多图书馆+志存当高远+读万卷书如行万里路+术业有专攻+读书是对思想的一种升华+立钻哥哥++==)
  14. c语言编程 菲薄拉,C语言设计模式-封装-继承-多态
  15. 【TP5.1】商品列表加载
  16. 正则表达式匹配电话号码
  17. 服务器阵列工作原理,阵列卡的工作原理
  18. 小学计算机资格证教案模板,小学数学教师资格证教学设计通用模板
  19. 安卓手机阅读器_这可能就是你要找的全功能电子书阅读器
  20. 2015,GECCO,Comparison of Semantic-aware Selection Methods in Genetic Programming

热门文章

  1. php radius类,PHP Radius Search
  2. bat从数组中找出相同数字并删除_全网把Map中的hash()分析的最透彻的文章,别无二家...
  3. 【算法】排序算法——归并排序
  4. HTML-meta标签
  5. leetcode —— 1038. 从二叉搜索树到更大和树
  6. 操作系统 ——进程的状态与转换
  7. 吴恩达深度学习 —— 2.4 梯度下降
  8. 中国计算机学会推荐的国际学术刊物
  9. 类型全部为string_TypeScript 高级类型总结(含代码案例)
  10. android布局添加背景颜色,android-获取布局的背景色