Author Archive

winux项目[1]是我五年前参加学校科技创新申请的项目,用时一年实现了PE Loader以及kernel32.dll里面3个Win32 API的移植工作,后来因为项目结题加上要忙其他事情就把后续开发工作搁置了。最近整理以前的代码的时候发现关于这个项目除了结题时提交的一篇水paper之外再没写过任何技术资料,所以趁着相关知识还没全忘赶紧写篇手记留作纪念。

Read the rest of this entry »

在Silverlight中我们可以使用ImageTools库的AnimatedImage控件来播放GIF图片,但是AnimatedImage目前还不支持WinRT应用,所以我实现了一个简单的控件来播放本地GIF文件。原理很蛋疼,首先用各种工具把GIF拆成单独的PNG文件,然后放到同一个文件夹下面,加载到内存中后用Timer来控制循环显示。

Read the rest of this entry »

在Silverlight中我们可以通过设置HttpWebRequest.AllowReadStreamBuffering为false,或者使用HttpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead)来实现在回调函数中不必等到Stream完全下载完成后才能读取数据,以便计算下载速度或进行其他处理。然而在WPRT应用中(WinRT未受影响)这两种方式都失去了效果,见示例:

Read the rest of this entry »

微软搞出的这个Universal应用本意是不错的,但是只是方便了WinRT应用到WPRT应用的移植,从WP8 Silverlight应用移植的话有很多坑,而且MSDN上面又没有一个完整详尽的说明,大部分新的实现方法都需要开发者自行摸索。所以我打算写这个系列文章来记录一些我的发现和经验,以帮助后来者少走一些弯路,节省一些时间。

Read the rest of this entry »

实现GetSampleAsync()

接下来需要实现MediaStreamSource.GetSampleAsync()。当系统解码器需要新的视频或音频sample的时候会调用这个函数,这个函数需要根据MediaStreamType返回相应的下一个sample。至于是预加载所有的sample还是用on demand的方式获取下一个sample都可以,前者可能会在播放视频的头几秒有所卡顿,后者可能会导致seek的过程略长。

Read the rest of this entry »

众所周知,Windows Phone SDK自带的MediaElement不支持FLV容器。但是根据MSDN所言[1],实际上Windows Phone在硬件上支持AAC音频和H264视频的播放。恰巧大部分网络FLV视频都是AAC+H264编码的,于是理论上我们就可以通过实现MediaStreamSource来让MediaElement认识和播放FLV视频。我在开发哔哩哔哩客户端的时候就采用了这个技术。

本文同时适用于Windows Phone 7/7.1和Windows Phone 8。在本文之前,你不会在互联网上获得任何关于如何在Windows Phone上使用MediaStreamSource播放FLV视频的完整关键代码。

Read the rest of this entry »

近年来淘了不少中古PC98软盘,都是不远千里从11区寄过来的,让人感动的是虽然过了十多年但是软盘被保存得依然完好。不过软盘的保质期不长,说不定哪天就挂了,所以保险起见还是制作一张FDI镜像文件比较好。软盘本身就留作历史的记忆吧……

Read the rest of this entry »

World Line
Time Machine
Online Tools