西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

首頁編程開發(fā)其它知識 → WP8開發(fā)從SD 卡讀取音頻文并設置為手機鈴聲

WP8開發(fā)從SD 卡讀取音頻文并設置為手機鈴聲

相關軟件相關文章發(fā)表評論 來源:西西整理時間:2013/3/1 18:14:15字體大小:A-A+

作者:西西點擊:10次評論:0次標簽: WP8

QQ2014 for WP84.3 官方最新版
  • 類型:QQ2014大。20M語言:中文 評分:2.8
  • 標簽:
立即下載

首先在Sd卡上新建一個Ringstones的文件夾 向文件內放一些MP3格式的音頻文件 再將文件重命名為“.yumi”格式的文件

第 1 步: 指定功能    

在應用程序清單文件中,WMAppManifest.xml,指定訪問 SD 卡的ID_CAP_REMOVEABLE_STORAGE功能。

XAML

步驟 2: 注冊擴展                  

若要處理特定的文件類型,注冊文件關聯(lián)擴展名。在 WMAppManifest.xml 中指定的擴展名。

 后的標記元素,里面的擴展元素,只是下面的FileTypeAssociation元素與指 定文件關聯(lián)擴展名。

 1  
 2       
 3         
 4           Assets/Route_Mapper_Logo33x33.png
 5           Assets/Route_Mapper_Logo69x69.png
 6           Assets/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, ef.Name);
        }
//檢查系統(tǒng)中是否存在YumiRings文件夾
  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實現(xiàn)鈴聲的保存
        private void SetRing(string name)
        {
            SaveRingtoneTask saveRingtoneChooser = new SaveRingtoneTask();
            saveRingtoneChooser.Completed += new EventHandler(saveRingtoneChooser_Completed);
            try
            {
                saveRingtoneChooser.Source = new Uri("isostore:/YumiRings/" + name);
                saveRingtoneChooser.DisplayName = name.Substring(0, name.IndexOf("."));
                saveRingtoneChooser.Show();
            }
            catch (System.InvalidOperationException e)
            {
                               MessageBox.Show(e.Message);
            }
        }
        public void 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;
            }
        }

 源碼獲取 請加QQ群:157153754。

    QQ2014
    (25)QQ2014
    酷炫界面隨心而動,與眾不同。全新皮膚引擎,輕松上傳美圖作為皮膚,體驗屬于自己的視覺盛宴。專業(yè)高品質的界面構想,為您帶來無與倫比的視覺享受。下載正式版免費下載已經(jīng)免費提供給廣大騰訊用戶進行下載了,如果你還是在使用,那么你已經(jīng)了,快來下載正式版來體驗下新版本帶給你的快樂吧正式版新增劃詞搜索功能,邊聊邊搜更輕松,新增會員超級表情功能,聊天更有生動有趣。最新版官方下載是在系列版本的基礎上,全新設計與定義的...更多>>

    相關評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)
    推薦文章

    沒有數(shù)據(jù)