2013年12月18日

摘要: 现在我们可以录制声音并将它保存到应用程序独立存储的临时文件中。接下来我们需要提示用户输入新的自定义声音的显示名称来允许用户永久保存声音。 本课的计划: 1. 向"save"应用栏按钮添加事件处理程序方法 2. 我们将管理应用栏的状态,它应该仅在临时声音文件被创建并准备好被永久保存时可见。 3. 我们将再次使用Coding4Fun工具包,这次用于显示输入对话框(InputDialog)以获取新的自定义声音音频文件的名称。 4. 我们将把CustomSounds数据序列化成一个JSON文件 5. 我们将修改数据模型以同时加载自定义声音JSON文件并创建自定义声音数据模型的实例 阅读全文
posted @ 2013-12-18 21:15 电力培训网 阅读(1398) 评论(3) 推荐(3) 编辑

2013年12月15日

摘要: 在本课中我们将编写录制自定义声音所需的代码。我们将利用Coding4Fun工具包以简化录制工作,但是我们还需要理解内存流 (MemeoryStream)和电话的独立存储 (IsolatedStorage)等概念。 本课的计划: 1. 我们将修改ToggleButton以将事件处理程序方法关联到Checked和Unchecked事件。 2. 我们将使用Code4Fun工具包Audio命名空间中的MicrophoneRecord类以开始和停止录制过程。 3. 当我们停止录制时,我们需要将存储在手机内存中的声音临时保存到磁盘,这样就可以播放或永久保存它。 4. 我们将添加一个MediaElement控件用于播放声音。 5. 根据用户的录制动作管理播放声音按钮的状态(启用或禁用)。 我想说的是这可能是本系列中最具挑战的一课,因为它涉及一些稍微高级一些的内容。您应该主动接受这些内容,努力才能学到东西,挑战有难度的概念将帮助您更快成长。请不要只观看本视频,您还需要同时阅读我引用的MSDN文章以获取更多信息。所以请调动您的思维,让我们开始吧。 阅读全文
posted @ 2013-12-15 19:30 电力培训网 阅读(964) 评论(0) 推荐(1) 编辑

2013年12月11日

摘要: 现在我们已经可以导航到新的RecordAudio.xaml页面,让我们把注意力放在该页的布局上。如果您回想一下用户界面的草图,我们设想了一个卷盘图像,它会进行旋转以指示应用程序正在录音。会有一个按钮启动录音,一个按钮进行回放。最后,会有一个应用程序栏负责保存声音并对声音命名。在本课中,我们将讨论页面的布局,声音录制功能和动画将在后续课程中进行讨论。 所以本简短课程的计划非常明确: 1. 我们将通过绑定到本地资源对品牌进行更改。 2. 我们将添加按钮和椭圆(ellipse),然后在椭圆上添加一些形状以使它看上去像一个老式的卷盘。 3. 我们将添加一个应用程序栏,在前面课程中我们已经学会了这方面技能。 阅读全文
posted @ 2013-12-11 20:38 电力培训网 阅读(1005) 评论(2) 推荐(3) 编辑

2013年12月10日

摘要: 从2013年7月19日开始,到2013年12月9日,一共花了143天时间完成了18篇Windows Phone 8初学者开发的翻译,还剩下17篇文章需要翻译,看到了完成的希望!I love Windows Phone! 阅读全文
posted @ 2013-12-10 09:10 电力培训网 阅读(382) 评论(4) 推荐(1) 编辑

2013年12月9日

摘要: 当某人在应用程序栏上单击麦克风图标时,我们希望将他带到一个新的页面,并在此页面中录制自定义的声音。为此,我们需要在应用程序中创建第二个页面,然后从MainPage.xaml导航到新的页面。在Windows Phone应用程序中导航与web页面间的导航类似。在本课中,我们将学习导航API,虽然在这个特定的应用程序中我们的需求很简单。 本课的计划: 1. 再次讨论数据绑定项目模板以观察它如何从主页面导航到明细页面。 2. 讨论Windows Phone 8 API中导航所需的类。 3. 实现从主页面导航到录制自定义声音的新页面所需的代码。 阅读全文
posted @ 2013-12-09 17:06 电力培训网 阅读(1134) 评论(1) 推荐(1) 编辑

2013年12月8日

摘要: 在我们的应用程序中,通过手工编写代码方式录制自定义声音将比较困难。幸运的是您在Coding4Fun的朋友Clint Rutkas创建了一个针对Windows Phone的工具包,它在易于使用的编程接口背后隐藏了复杂性。如果您不熟悉Coding4Fun,它是一个从事炫酷极客项目而不是标准商业应用程序的Channel9网站。他们通常使用类似Kinect的硬件来控制像拳击机器人这样的事物,甚至是采用微软技术经过重大修改的一辆福特野马。(译注:福特野马,a Ford Mustang,福特旗下一款车型,它是一部发动机中置的两座跑车,为了纪念在二战中富有传奇色彩的北美P51型“野马”战斗机) 这样做的目的很简单:证明这些事情是可以实现的! 阅读全文
posted @ 2013-12-08 15:12 电力培训网 阅读(1117) 评论(0) 推荐(1) 编辑

2013年12月7日

摘要: 作为一个简单的声音面板程序,SoundBoard工作得很好,但是我们希望超越常规并启用自定义声音,即用户可以录制并重复使用的声音。这就要求对应用程序进行一些更改。在本课中我们将添加一个含有录制按钮的应用程序栏。当用户单击它时,我们将把用户导航到一个新的XAML页面,在那里用户可以录制新的自定义声音。 即使您不知道它的名称,您可能在以前就见过应用程序栏。应用程序栏出现在应用程序可视区域的底部并且可以包含一些图标以及一个省略号,当点击省略号时将显示图标下的文本,并可能显示一个额外的选项菜单。在本课结束前我们将学会如何使用它。 阅读全文
posted @ 2013-12-07 20:01 电力培训网 阅读(867) 评论(0) 推荐(1) 编辑

2013年12月6日

摘要: 我们已经用实时数据加载了数据模型,其中重要的是声音文件的位置,其实播放声音是比较容易的。 本课的计划: 1.我们将向页面添加一个MediaElement控件,我们不以声明方式设置Source属性,而以编程方式进行设置 2.我们将关联到一个事件处理程序,它在每次用户点击不同磁贴时被触发 3.在该事件处理程序方法中我们将设置MediaElement控件的属性 阅读全文
posted @ 2013-12-06 14:19 电力培训网 阅读(990) 评论(4) 推荐(1) 编辑

2013年12月3日

摘要: 我们的SoundBoard应用程序进展如何? 我们已经有了一个新的数据模型,并且在上一课中我们添加了示例数据,我们在设计时使用它们以帮助我们正确对应用程序的用户界面进行布局,特别是我们使用了绑定到SoundData类实例的数据模板。 在本课中我们将注意力转移到在运行时绑定到真实的数据。 说实话,我们可以在应用程序的运行时使用相同的XAML文件作为“实时数据”。如果您想这样实现,您当然可以,并且您已经有了一个良好的开端。您可以用更多SoundGroup和SoundData的实例构建该XAML文件,然后在运行时通过SoundModel类的LoadData()方法加载该文件。 事实上这可能是一个很好的挑战自己的方式。当您完成本系列课程后,您可以回过头重新创建这个应用程序,但是请在此处使用不同的数据访问方法。努力才能学到东西,这样的练习会迫使您努力找到在运行时加载XAML数据到数据模型的方法。 言归正传,本课的计划: 1. 在 SoundModel.cs文件中,我们将创建一系列辅助方法,每个辅助方法被设计用于创建SoundData类的实例,这些实例将被添加到SoundGroup中的 阅读全文
posted @ 2013-12-03 20:17 电力培训网 阅读(991) 评论(5) 推荐(1) 编辑

2013年12月1日

摘要: 在上一课,在将新数据模型关联到MainPage.xaml方面我们取得了很多进展,现在我们需要关注LongListSelector的DataTemplate的布局。我们希望调整每个SoundData实例以使他们看上去像磁贴而不是行。所以,如果我们将应用程序用户界面的当前状态与我们的图纸进行比较,当前的布局并不合理。在本课中我们将对它进行改进。 计划: 1. 我们将修改该LongListSelector以利用Grid布局模式。 2. 我们将彻底重新修改每个DataTemplate以使它们更像磁贴。 3. 因为我们需要五到六个PivotItem,每个PivotItem都包含自己的LongListSelector,没有必要为每个PivotItem定义磁贴布局,所以我们会将它们抽象到一个集中的模板中以便MainPage.xaml中的所有LongListSelector均可以使用它。 阅读全文
posted @ 2013-12-01 17:55 电力培训网 阅读(1120) 评论(0) 推荐(1) 编辑

导航