音频与视频-windows store app 与windows phone 8的异同

众所周知,随着Windows 8与Windows phone 8的发布,其给我们带来了比以往任何时候都要紧密相似的两个平台。虽然它们非常的相似,但是在数字音频和视频的实现和技术上也存在相当大的区别。希望这篇博客能帮助您认知和理解这两个平台在媒体技术上的差别。在您看这篇博客之前,我假设您已经熟悉windows 8或者windows phone 8其中的任何一个与媒体相关的技术知识,虽然您对另一个平台不甚了解,但您仅仅需要一些相关的知识便可以将媒体技术从一个平台迁徙到另一个平台。 音频/视频的相关播放技术 Audio / Video Playback – Technology Map Windows Store Windows Phone 8 MediaElement  (XAML)   MediaElement  (XAML) IMFMediaEngine  (C++ only) IMFMediaEngine  (C++ only) (Subset)   WASAPI  (C++ only) WASAPI  (C++ only) (Subset)   XAudio2  (C++ only) XAudio2  (C++ only)   MeidaElement 控件能同时在这两个平台是播放音频和视频,但是关于MeidaElement,他们之间也存在一些差异,比如说windows phone 8中,你不能向MeidaElement添加任何的音频和视频效果(如插件)。且在DRM的实现上这两者之间也存在差异。如果你在实现MeidaElement播放音频/视频的时候不做任何花哨或者复杂的处理,那么MeidaElement在这两个平台是可以相互兼容的。 MediaEngine(与上述讨论的MeidaElement 有所不同)是windows 8与Windows…

0

How to use new controls in Windows 8.1 (2)

­Before developing an app, you should know which tools can be used to help with designand layout. In the previous article, we introduced some new features in windows8.1. Now, let us see more useful new features in this blog.  The Hub Control Hub control is a new feature introduced in windows 8.1 and can display…

0

如何正确使用Background Task的几点建议

前些天,在Windows商店应用论坛搜索了一下“热点问题”,发现有很多关于Background Task的理解误区。以下是关于如何正确使用Background Task的几点建议。 误区:Background Task不是很有用,因为微软对他做了很多的限制。 很多刚接触商店应用的开发者都会有类似的想法,但其实是因为在编写桌面应用程序的时候可以把程序运行在后台并且带少量甚至不带限制。当台式机插入电源的时候这种方式的编程是非常理想的,但并不适用于移动设备或者外置设备。Windows 8 以及8.1都是为了移动设备而定制的,运行在移动设备中的商店应用程序需要关注电池的使用量以及用户的选择,在这样的前提之下,很多的BackgroundTask API都做了限制。但是微软对此相当关注,并且有很多关于Background Task方案的内部讨论,这样做的目的是为了满足开发者最基本的移动编程的需求。移动设备未来将会对Background Task进行扩展,敬请期待。 误区:我有一个运行时间足够长的代码,如果我的应用是处于挂起状态并且我想运行完这段代码,我可以把这段代码放在后台执行,它会自动执行完成。 这个取决于你的代码运行多长时间,请时刻记住为了节约电池,我们对后台线程做了限制,包括可以运行多少后台任务,每个后台任务运行多久,多少时间触发一次。举个例子在Background Task中你是不可能花3个多小时去下载一个高清版的指环王,但是你可以使用Background Downloader来实现。请记住,Background Task仅仅为小数据量的下载更新而被使用,比如说更新磁贴,更新锁屏图标等,他们并非为下载大量数据而设计的。一般来说,你可以间隔的让你的Background Task触发,执行代码,显示必要的数据,然后继续休息。 误区:当应用处于不活跃状态时,你可以用一个标准的Background Task来播放音频视频。 播放背景音乐可以通过使用MediaElement的背景音乐属性或者可以使用<audio/video>的标签。如果想让你的商店应用正常播放背景音乐你需要实现 SystemMediaTransportControls这个类,这个类是替换MediaControl的存在。他们俩做同样的事,都允许用户在锁屏的时候通过硬件按钮或者在锁屏上的控制条来控制音乐的播放。 误区:当我有权限在锁屏时运行带有计时功能的Background Task的时候我可以无限时运行。 答案可以说正确也可以说错误。当你的程序被用户赋予在锁屏运行的权利时,你的应用可以正常运行。但如果用户把你的应用从锁屏中删除的话,你的Background Task将不会在锁屏状态下运行。这样的设计是为了最大化保证电池的续航时间。 误区:如果我的Background Task仅仅耗时1秒,我就不需要注册一个取消的处理事件 我们必须为Background Task取消做好准备,即使它仅仅耗时1秒乃至更少,Background Task可能因为多种原因而被取消。当你拥有一个长时间运行的Background Task但是你忽略了取消,可能会因此导致数据丢失或者程序错误。为此我们应该在Task运行的时候检查取消请求以确保程序正常运行。我们建议在Background Task代码中多设定检查取消的判定以保证取消事件得以及时传递。虽然这个看起来很麻烦,但的确是一个良好的代码习惯。 误区:不要把后台任务和异步操作混淆使用 不当心的话还是很容易把他俩混淆的。假设有这么一种情况,在后台任务中使用了异步操作,但后台任务还没来得及申请挂起之前的短暂停就因为系统锁定而挂起,这样很容易造成异步无法执行完成,导致内存泄漏。 误区:我需要使用WNS来推送所有的消息,我不可以创建我自己的推送服务。 这个理解是错误的,我们为此添加了很多网络Trigger API来确保用户可以使用自己的推送服务,但是为了使这些api能正常工作,我们需要维护一个后台的数据连接传输的功能。WNS本身就有很多优点比如说节省开支,节约代码,并且是独立于语言。一般WNS被诟病的问题就在于推送不及时。当我们在鼓励用户使用WNS的时候,也同时鼓励为了确保推送质量的开发者使用网络检测的api,谨记当使用自己的网络监测api的时候也需要为锁屏注册相应事件。 相应的链接可供参考 Supporting your app with background tasks (Windows Store apps using JavaScript and HTML Being productive in the…

0

Porting Desktop Apps to Windows Store Apps

Author: Han Xia Windows Store Applications bring a brand new look and user experience. It’s also a great challenge for the Windows developers who are familiar with the desktop applications development to adapt to the new interface and programing model. In this article, I try to provide the generic guideline on how to port desktop…

4

Introduce multi-thread programming in Windows Store apps Part II

Introduction   We will post a blog series to introduce multi-threading programming in Windows Store app. In this blog series, we will walk through a sample together to demonstrate which multi-threading APIs can be used, how to create a thread, and synchronization. As the second part in this series, this article will introduce how to…

1

Introduce multi-thread programming in Windows Store apps Part I

Introduction   We will post a blog series to introduce multi-threading programming in Windows Store app. In this blog series, we will walk through a sample together to demonstrate which multi-threading APIs can be used, how to create a thread, and synchronization. In this blog, we will introduce which Win32 multi-threading APIs can be used…

1

Porting iOS Apps to Windows 8 (5): Storing Data and Preferences

Author: Rafe Wu   Channel 9 https://channel9.msdn.com/Blogs/OneCode/How-to-Port-iOS-apps-to-Windows-Store-apps Windows 8 features a very comprehensive system of managing data for applications. This section compares the Application Preference features of Windows 8 and iOS. Application Preference The following table shows how we store application settings on the two platforms.   iOS Windows Store Application Application Preferences System wide…

0

Porting iOS Apps to Windows 8 (4): Application Lifecycle Differences

Author: Rafe Wu   Channel 9 https://channel9.msdn.com/Blogs/OneCode/How-to-Port-iOS-apps-to-Windows-Store-apps Technically speaking, both the iOS and the Windows Store applications allow only one application to execute in the foreground at a time. The foreground application owns the screen and receives the touch events. They both support multitasking and fast application switch. However, the execution model of iOS apps…

0

Porting iOS Apps to Windows 8 (3): Developer and Designer Tools

Author: Rafe Wu   Channel 9 https://channel9.msdn.com/Blogs/OneCode/How-to-Port-iOS-apps-to-Windows-Store-apps Microsoft released a new version Visual Studio Developer tools which brings a user-friendly, high productivity development environment to developers. Developers who have used Visual Studio will find themselves in a familiar environment.   A Comparison of iOS and Windows 8 developer Tools Visual Studio 2012 is a full-featured…

1

Porting iOS Apps to Windows 8 (2) : User Interface

Author :Rafe Wu   Channel 9 https://channel9.msdn.com/Blogs/OneCode/How-to-Port-iOS-apps-to-Windows-Store-apps Windows 8 uses a novel user interface called Windows Store. It sets itself apart with its clean and simple design and emphasizes color and typography. In contrast to the application-focused design of iOS, Windows 8 uses an information-centric design. Instead of a guid of app icons, the start…

0