希望看到这篇文章的开发者能提供你们的想法,让我们一起来探讨一款wp平台上面一款能流畅播放、能流畅拖拽进入条、只发一次请求就可以缓存的最好的播放器。希望大家能对我下面遇到的问题作出回答。

现在出了Windows Phone版本的音乐的主流软件有:

1、多米音乐:这个应该是目前Windows Phone平台国内最好的软件了,不管是从软件的更新进度还是技术上的实现都处于领先地位;因为它使用了AudioPlaybackAgent和AudioStreamAgent结合的技术实现;

2、酷我音乐:酷我只能排第二了,因为他的技术上实现的偷了点懒只使用了AudioPlaybackAgent;

3、豆瓣FM:豆瓣只能说终于出官方版本了,以前有很多个人开发者的版本,从豆瓣FM的设计界面来看投入也不是很大,感觉只是为了发个版本。

4、百度音乐、qq音乐、唱吧:这些都可以滚粗,简直是伤了我们用户的心,百度和qq简直是敷衍了事,哎亏我们每天给他们的千亿市值作贡献,还有就是唱吧,我真不知道说啥 这样的版本也好意思发出来,居然连AudioPlaybackAgent都没使用,意味着你手机锁屏或者按home键他就会播放停止。

还有一些个人开发者开发了些版本:

1、虾米音乐:这个应该是个人开发者里面开发的最好的了,可以和正式版本媲美;作者微博@想要放羊的兔子

2、天天动听:感觉开发者在界面的设计上还要改进,作者微博@小飞飞快飞

下面来说说技术实现,因为我也是第一次调研希望大家多多发表意见:

一般播放的做法:

就是使用AudioPlaybackAgent,这样的话做法很简单只需要将AudioTrack赋值给BackgroundAudioPlayer.Instance.Track就可以了其他的一切善后工作都交给系统了,

这样的做法一个最大的弊端:

1、就是我们在听完歌曲后,不能将歌曲缓存下来,但是不是也不是没有办法,我们可以在歌曲听完再请求一次将歌曲下载缓存在本地,避免下次再重新请求,

因为这样做的话我们的所有权全部就交给系统了,我们只能做两次请求才能将歌曲缓存下来,这就意味着我听一首歌曲的话我就必须请求两次,手机必须走两遍流量,

这样做不是不好,是因为我活在天朝,流量贵呀。再说我们都是负责人的程序员呀,我们要给我们的用户争取福利才是王道呀。

好处就是:

1、实现简单,一般不会出莫名的异常:

2、播放进度条可以随意拖动,反应也快;

然后我觉得高级点的做法就是使用AudioPlaybackAgent和AudioStreamAgent结合的技术实现;

这样实现的原理就是,如果歌曲第一次请求我们在创建AudioTrack的时候我们将source一定要设置为null因为这样它才会进入AudioStreamAgent的OnBeginStreaming,

这样我们就可以在里面使用streamer.SetSource(Mp3MediaStreamSource);这样我们在设置流的时候,将歌曲缓存下来,这样就可以实现我们的只请求一次。如果我们已经

缓存了音乐在本地的话我们只需要使用AudiaoTrack创建实例的时候将本地存储中的url赋值给source就可以在AudioPlaybackAgent播放,这样我们就不需要再去请求了。

不过这样的实现有几个弊端:

1、实现起来比较麻烦,需要用到ManageredMediaHelper

2、最大的问题是我在实现拖动进度条的时候会出现相应很慢的情况,有时候拖动一次需要一两分钟才能反应过来(多米音乐也有这个问题),特别是你往前拖拽了进度条然后再往后拖动,

简直会让你等到心都量了。

3、还有就是有实现你会发现你点击一首歌的时候,会出现不能播放的情况,你也不知道哪里出问题了,反正就是不能播放我跟踪了很久都没有发现,需要重新选择才能播放。

希望看到这篇文章的开发者能提供你们的想法,让我们一起来探讨一款wp平台上面一款能流畅播放、能流畅拖拽、只请求一便流量的wp最好的播放器。希望大家能对我上面遇到的问题作出回答。

关于Windows Phone平台音乐播放的的技术调研的更多相关文章

  1. Windows Phone后台音乐播放本地代理实现讨论

    前一篇文章讨论的wp平台音乐播放的一些遇到的问题,经过苦思冥想和多方参考安卓实现:发现我们可以考虑一种本地代理的思想来完成我们的边听边存,并且流畅拖动进度条.希望大家一起讨论.可以下载我的代码一同研究 ...

  2. c#音乐播放器

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

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

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

  4. C# 里窗体里(windows form)怎么播放音乐

    在.NET的winform里面,没有托管的音乐播放器,API只能播放WAV格式,对于MP3等形式的音频文件,就要依赖于 MediaPlayer里,嘿嘿 使用的方法: 在toolbox上点右键,选择“选 ...

  5. 与众不同 windows phone (14) - Media(媒体)之音频播放器, 视频播放器, 与 Windows Phone 的音乐和视频中心集成

    原文:与众不同 windows phone (14) - Media(媒体)之音频播放器, 视频播放器, 与 Windows Phone 的音乐和视频中心集成 [索引页][源码下载] 与众不同 win ...

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

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

  7. Windows平台Unity3d播放多路RTMP或RTSP流

    好多开发者在做AR.VR或者教育类产品时,苦于如何在windows平台构建一个稳定且低延迟的RTSP或者RTMP播放器,如果基于Unity3d完全重新开发一个播放器,代价大.而且周期长,不适合快速出产 ...

  8. 如何实现Windows平台RTMP播放器/RTSP播放器播放窗口添加OSD文字叠加

    好多开发者在做Windows平台特别是单屏多画面显示时,希望像监控摄像机一样,可以在播放画面添加OSD台标,以实现字符叠加效果,大多开发者可很轻松的实现以上效果,针对此,本文以大牛直播SDK (Git ...

  9. 小菜学习Winform(二)WMPLib实现音乐播放器

    前言 现在网上有很多的音乐播放器,但好像都不是.net平台做的,在.net中实现音乐文件的播放功能很简单,下面就简单实现下. SoundPlayer类 在.net提供了音乐文件的类:SoundPlay ...

随机推荐

  1. android sdk

    android sdk 网站 为什么google 的网站都上不去. http://www.androiddevtools.cn/

  2. Ubuntu下vsftpd配置实例,超级简单,高度可用

    看了网上很多关于vsftpd的安装配置教程,发现很多都是不可以用的,经过多次尝试,总结了一个最简单的设置方法. 第一步:安装vsftpd sudo apt-get install vsftpd 第二步 ...

  3. 使用Android Studio打Andorid apk包的流程

    启动Android studio   1.点击菜单栏Build -> Generate Signed APK...,打开如下窗口 2.这里是类似eclipse中Android的签名,假设这里没有 ...

  4. NGUI 减少drawcall规则

    前置说明一: Unity中的drawcall定义: 每次引擎准备数据并通知GPU的过程称为一次Draw Call. Unity(或者说基本所有图形引擎)生成一帧画面的处理过程大致可以这样简化描述:引擎 ...

  5. Hadoop学习-生态体系(ecosystem)概览

    0. 大背景 全球No.1搜索引擎公司谷歌(Google)面临每天海量搜索引擎数据的问题,经过长时间的实践积累, 谷歌形成了自己的大数据框架,但是并没有开源,而是发表了一篇论文,阐述了自己的思想,在论 ...

  6. Python字符串的修改以及传参

    前两天去面试web developer,面试官提出一个问题,用JavaScript或者Python实现字符串反转,我选择了Python,然后写出了代码(错误的): #!/usr/bin/env pyt ...

  7. C# 个人常用代码积累

    /// <summary> /// TextBox限制只能输入十六进制,且只能输入6个 /// </summary> /// <param name="send ...

  8. 【LeetCode】258. Add Digits (2 solutions)

    Add Digits Given a non-negative integer num, repeatedly add all its digits until the result has only ...

  9. windows下ruby安装环境配置

    Ruby 安装 从源代码在windows下安装Ruby是非常苦逼的差事,可以从http://rubyinstaller.org/ 或者 http://railsinstaller.org/ 下载已经打 ...

  10. GPS accuracy in Android

    Get the estimated accuracy of this location, in meters. We define accuracy as the radius of 68% conf ...