暂别之前先写点有用的
快要结束5个月的windows phone 7的开发旅程,走之前想写点有用的给各位奋战在WP7开发一线的大神们一点茶余饭后的笑料吧。。。
首先我要声明一点,我只是个菜鸟,文章有偏颇之处请见谅。也欢迎广大微软派系的程序员能为我的文章纰漏之处给予批评。。。这就开始了~~~
开发环境我就不罗嗦了,网上一大堆,但是我得先说一声,如果您想通过把自己的产品放到微软的market place 去挣钱的话,请您最好先去http://create.msdn.com/zh-CN/home/getting_started这里去查阅相关资料。我这里只能阐述我力所能及的代码级别的问题,其余关于商业的问题,我也不是很明白。。。
另外还有一点个人建议,所有想通过移动开发挣钱的纯个人开发者(无团队无风投),最好不要单一的学习silverlight for windows phone,如果你想挣钱XNA是首选。
其余就不多说了。
首先我要先分享的是一个关于音乐播放类的问题,这个问题纠结了我们团队很长时间,我们一直在跟微软的官方规则做斗争,这种斗争是无聊的,但是作为弱势一方的码农们又是必须去面对和解决的,微软的恶心规定如下(PS:这是个隐形条理,这也是在我们在工作中总结出来的活性条理,那个死板的官方规则里面没写明白):
1.用户如果打开了手机自带的Zune播放器,并且播放着音乐进入你的应用(或者游戏),如果你的应用也有背景音乐的时候,你就必须关闭你自己的背景音乐,或者你可以弹出一个对话框,询问用户:“检测到您有音乐在播放,是否暂停您的音乐,播放本游戏的音乐?”,然后就按照用户的选择,如果用户允许,你就停掉用户的音乐,如果用户没允许,那么你的音乐就得“去死”。
解决方案:a.判断用户音乐是否正在播放,如果在播放那么就弹出对话框,让用户去选择(吐槽:玩个游戏还要选来选去,这个规则真蛋疼。。。)
步骤1:在你应用的start page中的后台代码中,重写onnavigateto这个事件:
1 protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
2 {
3 if (MediaPlayer.State == MediaState.Playing)
4 {
5 MessageBoxResult rt = MessageBox.Show("是否暂停您的音乐,而播放游戏的背景音乐?", "提示:", MessageBoxButton.OKCancel);
6 if (rt == MessageBoxResult.OK)
7 {
8 MediaPlayer.Pause();
9 //这里用来播放你自己的音乐。
10 //(这里依然会有很多值得商榷的细节,我会在下一篇文章中说明)
11 }
12 else
13 {
14 //这里最好存一下,用户的选择,我建议有必要做成就问一次,以后再也不问。然后在游戏里面添加设置项,是否下次进来还问。
15 }
16 }
17 base.OnNavigatedTo(e);
18 }
解决方案:b.直接只要用户进入你的游戏是带着音乐,那么你就乖乖关闭你的背景音乐,这样也可以。
if (MediaPlayer.State == MediaState.Playing)
{
//关闭你自己的音乐
}
这个简单,但是用户体验会有所下降。这是音乐播放的第一步应该注意的,这是规则。隔天我会再详细介绍如何控制自己的音乐。
第一次在博客园发博,实在是因为现在已经去了别的项目,但是不忍心学了这么久的WP开发,就此荒废。。。在此感谢@纳米咖啡 和@anytao
两位将我引入WP7的世界,尽管我们“深受其害”,痛并快乐着。。。

浙公网安备 33010602011771号