我们在很多应用中,都用到MediaElement这个控件,用来播放音乐视频,如果外部播放器在播放音乐,当进入有MediaElement控件的应用中时,播放的音乐会停止,这主要是外部播放器和MediaElement共用手机的播放硬件资源造成的,如果当我们退出或雪藏当前应用时,外部的播放器也不会恢复回来,为了解决这个问题,我们可以采用下述方案来解决。

首先要处理加载程序,雪藏,恢复,关闭四个事件,即在App.xaml.cs中的四个事件:
  1. private void Application_Launching(object sender, LaunchingEventArgs e)
  2. {
  3. FrameworkDispatcher.Update();
  4. if (MediaPlayer.State == MediaState.Playing)
  5. {
  6. MediaPlayer.Pause();
  7. }
  8. }
  9. private void Application_Activated(object sender, ActivatedEventArgs e)
  10. {
  11. if (MediaPlayer.State == MediaState.Playing)
  12. {
  13. MediaPlayer.Pause();
  14. }
  15. }
  16. private void Application_Deactivated(object sender, DeactivatedEventArgs e)
  17. {
  18. if (MediaPlayer.State == MediaState.Paused || MediaState.Stopped == MediaPlayer.State)
  19. {
  20. MediaPlayer.Resume();
  21. }
  22. }
  23. private void Application_Closing(object sender, ClosingEventArgs e)
  24. {
  25. if (MediaPlayer.State == MediaState.Paused||MediaState.Stopped==MediaPlayer.State)
  26. {
  27. MediaPlayer.Resume();
  28. }
  29. }

分别在加载和恢复事件中让外部播放器停下来,在关闭和雪藏事件中恢复外部播放器恢复暂停。

最关键的一点是,MediaElement控件在雪藏后,恢复回来后,就会失去Source属性的值,所以我们得在控件的页面中把雪藏前的MediaElement.Source存储起来,恢复后再把存储的值赋回来,代码如下:
  1. protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
  2. {
  3. PhoneApplicationService.Current.State.Clear();
  4. if (shengyin_ME.Source != null)
  5. {
  6. PhoneApplicationService.Current.State.Add("URL", shengyin_ME.Source);
  7. }
  8. base.OnNavigatedFrom(e);
  9. }
  10. protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
  11. {
  12. if (PhoneApplicationService.Current.State.Keys.Contains("URL"))
  13. {
  14. shengyin_ME.Source = PhoneApplicationService.Current.State["URL"] as Uri;
  15. }
  16. base.OnNavigatedTo(e);
  17. }
这样,就能实现在关闭应用或雪藏应用,外部播放器会继续播放。
本文转自桂素伟51CTO博客,原文链接:http://blog.51cto.com/axzxs/788923 ,如需转载请自行联系原作者

WP7下巧用MediaElement在雪藏中相关推荐

  1. 在WP7下自定义RelativeSource 的Binding

    最近老没有时间上来写博文.今天有空来写写上次还没有说完的话题.上一篇提到说说我在WP7应用开发中遇到的 子控件 DataTemplete 中的按钮的命令绑定,刚开始接触似乎是个头疼的问题.那怎么解决呢 ...

  2. 在Sqlserver下巧用行列转换日期的数据统计

    在Sqlserver下巧用行列转换日期的数据统计 原文:在Sqlserver下巧用行列转换日期的数据统计 在Sqlserver下巧用行列转换日期的数据统计 前言 在SQLSERVER 中有很多统计函数 ...

  3. 在linux下,如何在C语言中使用正则表达式

    http://hi.baidu.com/d_south/blog/item/9d22a34b1fc2bcf483025c53.html 在linux下,如何在C语言中使用正则表达式(整理) 2008- ...

  4. ubuntu下使用python将ppt转成图片_Ubuntu下使用Python实现游戏制作中的切分图片功能...

    本文实例讲述了Ubuntu下使用Python实现游戏制作中的切分图片功能.分享给大家供大家参考,具体如下: why 拿到一个人物行走的素材,要用TexturePacker打包.TexturePacke ...

  5. commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(三)-中英对照文档及源码赏析

    commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(三)-中英对照文档及源码赏析 摘要:中英对照文档.源码赏析.or ...

  6. commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(二)-中英对照文档及源码赏析

    commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(二)-中英对照文档及源码赏析 摘要:中英对照文档.源码赏析.or ...

  7. 如何在没有 USB 数据线的情况下使用 Android Studio 在手机中安装 Android

    背景 如何在没有 USB 数据线的情况下使用 Android Studio 在手机中安装 Android 应用程序? 运行调式一个Android项目,写下必要的代码后,接下来的任务是在模拟器或手机上运 ...

  8. linux添加windows字体文件夹里,如何把Windows下的字体添加到Linux中

    如何把Windows下的字体添加到Linux中 Linux(Fedora/Ubuntu/CentOS)的字体实在不尽如人意,而且在网页及文档显示时很多字无法显示出来,特别多的空白和乱码,其实,我们可以 ...

  9. IDEA下,如何在java项目中新增jsp模板文件

    IDEA下,如何在java项目中新增jsp模板文件 大家会不会有这样的烦恼,就是当想要创建一个jsp模板文件的时候,右键new的时候找不到JSP选项. 这是因为在创建项目的时候没有选中Web Appl ...

最新文章

  1. vNext之旅(2):net451、dotnet5.4、dnx451、dnxcore50都是什么鬼
  2. Ubuntu 全部命令
  3. 从 1.9 到 1.11,聊聊 PyFlink 的核心功能演进(附 Demo 代码)
  4. 基于卷积神经网络模型的MSTAR高分辨率图像数据集识别实践【后续:网络层可视化分析】
  5. [转载] MLDN魔乐科技李兴华主讲Oracle——01 Oracle简介
  6. ECU Bootloader自学笔记
  7. swagger2 注解
  8. Qt创建设计师自定义控件(Qt Designer自定义控件)
  9. Java实现调用百度AI开放云平台(人脸识别API)
  10. (附源码)计算机毕业设计SSM基于框架的旅游订票系统
  11. 怎么设置微信公众号自动回复蓝色字体,点击蓝色字体自动发送出去
  12. LaTeX插图命令使用教程(简单例子+清晰代码)(论文排版)
  13. NFT价值及白皮书获取
  14. 工厂模式实现及使用场景--java
  15. ubuntu12.04下安装matlab
  16. STM8S 串口应用 UART2 STM8S105
  17. 文墨绘学:网络时代、和孩子一起成长
  18. Tasklist使用详解
  19. 蓝桥杯 Java算法训练 黑色星期五
  20. 悟透JavaScript[转]

热门文章

  1. 你的眼睛一天内经历几万次“失明”,只是为了让你看清世界
  2. 树莓派都能做脑机接口了?实时处理8个电极信号,人人用得起 | 开源
  3. 高通CVPR神研究:视频处理计算量降低78%,教卷积层自己“挑像素”,卡成PPT的视频纵享丝滑...
  4. 达摩院三周年,当初立的flag都实现了吗?
  5. 西湖大学新冠研究登上Science封面,解析ACE2全长结构,是他们看清了新冠病毒如何入侵人体...
  6. 史上最全解读 | 飞桨模型库重大升级,主流算法模型全覆盖
  7. 中国军团称霸KDD:华人博士斩获最佳论文,清华北大中科大华为等榜上有名
  8. 机器“血液”登上Nature:一条假鱼靠它续航36小时,无需固态电池
  9. 5.2 测试计划和估算
  10. 剥开比原看代码17:比原是如何显示交易的详细信息的?