搜档网
当前位置:搜档网 › Windows Phone 8上的SD卡读取

Windows Phone 8上的SD卡读取

Windows Phone 8上的SD 卡读取---读取音频文件并设置为手机铃声在通过从MSDN上的学习是这样实现的:

首先在Sd卡上新建一个Ringstones的文件夹向文件内放一些MP3格式的音频文件再将文件重命名为“.yumi”格式的文件

?第 1 步:指定功能

在应用程序清单文件中,WMAppManifest.xml,指定访问 SD 卡的ID_CAP_REMOVEABLE_STORAGE功能。

XAML

?步骤 2:注册扩展

若要处理特定的文件类型,注册文件关联扩展名。在WMAppManifest.xml 中指定的扩展名。

后的标记元素,里面的扩展元素,只是下面的FileTypeAssociation元素与指定文件关联扩展名。

1

2

3

4 Assets/Route_Mapper_Logo33x33.png

5 Assets/Route_Mapper_Logo69x69.png

6Assets/Route_Mapper_Logo176x176.png

7

8

9.yumi

10

11

12

?步骤3:从 SD 卡中获取文件

//连接当前的SDCard

ExternalStorageDevice_sdCard=(await

ExternalStorage.GetExternalStorageDevicesAsync()).FirstOrDefault();

//如果sd卡存在连接Ringstone文件夹

if (_sdCard != null){ try

{ExternalStorageFolder routesFolder =

await _sdCard.GetFolderAsync("Ringstones");

IEnumerable routeFiles = await routesFolder.GetFilesAsync();

foreach (ExternalStorageFile esf in routeFiles)

{

If(esf.Path.EndsWith(".yumi"))

{ Routes.Add(esf);

}

} }

catch (FileNotFoundException)

{MessageBox.Show("你的SD卡上的Ringstones文件夹丢失。添加一个Ringstones文件夹中包含至少一个yumi文件,然后再试一次."); }}

else{MessageBox.Show("你的SD卡上的Ringstones文件夹丢失。添加一个Ringstones文件夹中包含至少一个yumi文件,然后再试一次.");

}

4 对读到的文件流进行转换成mp3格式并设为手机铃声

private async void SetRingClick( ExternalStorageFile ef)

{Stream s = await ef.OpenForReadAsync();

SaveRing(s, https://www.sodocs.net/doc/274507872.html,);

}//检查系统中是否存在Y umiRings文件夹

private void CreateDir()

{if

(store.DirectoryExists("YumiRings")==false)

{store.CreateDirectory("YumiRings");} }

//保存为铃声

private void SaveRing(Stream s,string name) { try

{

//将读取到的.yumi格式的文件进行转储到软件中并重新更改文件格式

string filename = name.Replace("yumi", "mp3");

CreateDir();

if(store.FileExists("YumiRings"+filename))

{

store.DeleteFile("YumiRings" + filename);

}

IsolatedStorageFileStream newstream = new IsolatedStorageFileStream("YumiRings//" + filename, FileMode.Create, store);

BinaryWriter newwriter = new BinaryWriter(newstream);

BinaryReader tempreader = new BinaryReader(s);

int filesize = (int)s.Length;

byte[] TempBytes = new byte[filesize];

TempBytes = tempreader.ReadBytes(filesize);

newwriter.Write(TempBytes);

newwriter.Close();

newstream.Close();

SetRing(filename); }

catch (Exception) { return;} }

///启动手机中保存铃声的Task实现铃声的保存

private void SetRing(string name)

{SaveRingtoneTask saveRingtoneChooser =

new SaveRingtoneTask();

https://www.sodocs.net/doc/274507872.html,pleted+=

new EventHandler(saveRingtoneChooser_Completed);

try{saveRingtoneChooser.Source =

new Uri("isostore:/YumiRings/" + name);

saveRingtoneChooser.DisplayName=name.Substring(0,name.IndexOf(".")); saveRingtoneChooser.Show(); }

catch(System.InvalidOperationExceptione)

{MessageBox.Show(e.Message); } }

publicvoid saveRingtoneChooser_Completed(object sender, TaskEventArgs e) {

switch (e.TaskResult)

{case TaskResult.OK:

MessageBox.Show("OK");

break;

case TaskResult.Cancel:

MessageBox.Show("No");

break;

case TaskResult.None:

MessageBox.Show("No");

break;

}

}

windows phone8开发技术群:134409419,242575749。更有林政老师最新windows phone 8教程等你来看!

林政,著有畅销图书《深入浅出Windows Phone 8应用开发》和《深入浅出Windows Phone 7应用开发》,擅长Windows Phone,Windows 8,https://www.sodocs.net/doc/274507872.html,,XNA,Silverlight等领域。

相关主题