从代码[Mango:Beta 1]设置自定义铃声(译文)
By S.F.
本文链接 https://www.kyfws.com/news/setting-custom-ringtones-from-code-mango-beta-1/
版权声明 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
- 2 分钟阅读 - 740 个词 阅读量 0从代码[Mango:Beta 1]设置自定义铃声(译文)
原文地址:https://www.codeproject.com/Articles/217753/Setting-Custom-Ringtones-from-Code-Mango-Beta-1
原文作者:Joel Ivory Johnson
译文由本站翻译
前言
在Windows Phone 7中设置自定义铃声.
反对发布前的信息
Windows Phone 7的下一次更新附带的一项新功能是可以设置自定义铃声.在代码中,您可以向用户提供铃声(由用户决定是否接受铃声,因此未经用户许可将永远不会更改用户设置).我正在查看用于执行此操作的新API,[SaveRingtonTask()](http://msdn.microsoft.com/zh-cn/library/microsoft.phone.tasks.saveringtonetask(v =vs.92).aspx ). 要使用API,您首先需要将感兴趣的铃声添加到隔离存储中.它可以是最长30秒的MP3文件或WMA文件.如果文件是应用程序的一部分,则只需将其构建类型设置为" Resource".
将文件从应用程序打包到隔离存储是从资源流中读取并写入隔离存储的问题.
var
s =
Application.GetResourceStream(new Uri("/MyApplicationName;component/1up.mp3",
UriKind.Relative));
{
using (var f = IsolatedStorageFile.GetUserStoreForApplication().CreateFile("1up.mp3"))
{
var buffer = new byte[2048];
int bytesRead = 0;
do
{
bytesRead = s.Stream.Read(buffer, 0, 1024);
f.Write(buffer, 0, bytesRead);
} while (bytesRead > 0);
f.Close();
}
}
文件进入隔离存储后,您必须将URL传递到SaveRingtoneTask()
.隔离存储的URI之前带有" isostore:"(也有一个" appdata:“前缀,但在此不再使用).给铃声指定一个显示名称,然后调用” Show"方法,向用户显示保存该铃声的选项.
SaveRingtoneTask srt = new SaveRingtoneTask();
srt.DisplayName = "1up";
srt.IsoStore= new Uri("isostore:/1up.mp3", UriKind.Absolute);
srt.IsShareable = true;
srt.Show();
许可
本文以及所有相关的源代码和文件均已获得The Code Project Open License (CPOL)的许可。
C# Mobile Dev Intermediate Windows-Phone-7 新闻 翻译