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

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

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

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

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

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

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

第 1 步: 指定功能    

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

XAML

步驟 2: 注冊擴展                  

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

 后的標記元素,里面的擴展元素,只是下面的FileTypeAssociation元素與指 定文件關(guān)聯(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 對讀到的文件流進行轉(zhuǎn)換成mp3格式并設(shè)為手機鈴聲

  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格式的文件進行轉(zhuǎn)儲到軟件中并重新更改文件格式
                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è)高品質(zhì)的界面構(gòu)想,為您帶來無與倫比的視覺享受。下載正式版免費下載已經(jīng)免費提供給廣大騰訊用戶進行下載了,如果你還是在使用,那么你已經(jīng)了,快來下載正式版來體驗下新版本帶給你的快樂吧正式版新增劃詞搜索功能,邊聊邊搜更輕松,新增會員超級表情功能,聊天更有生動有趣。最新版官方下載是在系列版本的基礎(chǔ)上,全新設(shè)計與定義的...更多>>
    • 騰訊qq2015正式版7.7.16077 官方最

      10-16 / 52.4M

      推薦理由:騰訊這次又爽約了,說好的QQ2014呢,好吧,今晚,終于迎來了傳說中的QQ2014,騰訊推送了一個QQ5.0的首個體驗
    • QQ20168.1.17724.0 官方最新版

      03-27 / 54.0M

      推薦理由:qq2016最新版官方下載,QQ全新設(shè)計回歸本源設(shè)計,整體風格簡約,讓您的目光停留在您所關(guān)注的內(nèi)容上,大大提
    • 手機QQ2016 for Androidv6.3.1 官方

      04-09 / 3.1M

      推薦理由:全新的手機QQ(Android)2014版正式發(fā)布。新版本在保留原有功能基礎(chǔ)上,加入2套趣味表情,并對UI進行簡化設(shè)計
    • QQ2016輕聊版3.4.3 官網(wǎng)安卓版

      04-18 / 10.1M

      推薦理由:QQ2014輕聊版是騰訊公司專為低性能手機打造的精簡版QQ。保留核心聊天功能,超小安裝包,省內(nèi)存,聊天更暢快
    • qq2015綠色版v8.1.17216 去廣告最新

      01-27 / 66.0M

      推薦理由:騰訊QQ全新設(shè)計嘗鮮版,在界面上采用了全新的設(shè)計,帶有濃濃的Metro風格,整體風格更加簡約扁平化,全新設(shè)計
    • QQ2014最新體驗版6.6.13074 官方安

      11-11 / 55.8M

      推薦理由:騰訊體驗中心本次推出的QQ性能體驗版3.0,通過改造基礎(chǔ)架構(gòu)和框架,針對關(guān)鍵功能深度優(yōu)化,重點提升了啟動,

    相關(guān)評論

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

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

    熱門評論

    最新評論

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

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

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