zoukankan      html  css  js  c++  java
  • WindowsPhone8中SaveSong方法将音乐文件转存到音乐库中

    根据WindowsPhone最新的API,可以实现将音乐文件保存到音乐库中 为音乐类型应用提供了可以将音乐直接保存到音乐库中的可能,进而弥补了Wp7中的不足。

    根据MSDN上要求 http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff402541%28v=vs.105%29.aspx

    可以实现此功能.

    [ExtensionAttribute]
    public static Song SaveSong (
             MediaLibrary library,
             Uri filename,
             SongMetadata songMetadata,
             SaveSongOperation operation
    )
    

    Parameters

    library
    Type: MediaLibrary The media library to which the song is to be added.
    filename
    Type: Uri The path to an MP3 or WMA song file in the local file system.
    songMetadata
    Type: SongMetadata Metadata about the song. If this argument is null, then the metadata contained in the song file is used.
    operation
    Type: SaveSongOperation An enumeration value that specifies whether to copy or move the song file.

     

    注意:

    您不能使用isostore URI方案提供的文件名参数的值。
    如果提供的文件是无效的,但以下情况例外可能会发生:
    如果该值为空时,一个ArgumentNullException。
    如果该值包含一个空字符串时,一个InvalidOperationException。
    如果该值指向一个不存在的文件,一个InvalidOperationException。
    如果你不提供的songMetadata参数的值,然后在歌曲中包含的元数据文件。
    当预期的元数据没有提供这些值中的歌曲文件,使用以下值:
    文件名使用的Name属性的值。
    String类型的属性值设置为未知。
    Uri类型的属性的值保持为空

    MSDN 学习地址:http://msdn.microsoft.com/en-us/library/windowsphone/develop/microsoft.xna.framework.media.PhoneExtensions.medialibraryextensions.savesong(v=xnagamestudio.42).aspx

     程序源码:

            private void CopyRingToStore()
            {
                Uri file = new Uri("Assets/Song.mp3", UriKind.Relative);
                var myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();
                var fileStream = myIsolatedStorage.CreateFile("Song.mp3");
                var resource = Application.GetResourceStream(file);
                int chunkSize = 4096;
                byte[] bytes = new byte[chunkSize];
                int byteCount;
                while ((byteCount = resource.Stream.Read(bytes, 0, chunkSize)) > 0)
                {
                    fileStream.Write(bytes, 0, byteCount);
                }
                fileStream.Close();
    
                Microsoft.Xna.Framework.Media.PhoneExtensions.SongMetadata metaData = new Microsoft.Xna.Framework.Media.PhoneExtensions.SongMetadata();
                metaData.AlbumName = "Some Album name";
                metaData.ArtistName = "Some Artist Name";
                metaData.GenreName = "test";
                metaData.Name = "SongName";
    
                var ml = new MediaLibrary();
                Uri songUri = new Uri("Song.mp3", UriKind.RelativeOrAbsolute);
                var song = Microsoft.Xna.Framework.Media.PhoneExtensions.MediaLibraryExtensions.SaveSong(ml, songUri, metaData, Microsoft.Xna.Framework.Media.PhoneExtensions.SaveSongOperation.CopyToLibrary);
            }

    经过我的实践可以成功将音乐保存到音乐库中

    博客参考地址:http://social.msdn.microsoft.com/Forums/en-US/wpdevelop/thread/f5fa73da-176b-4aaa-8960-8f704236bda5

    欢迎WindowsPhone开发爱好者加入QQ群:157153754   243302359  共同交流技术问题 


     

  • 相关阅读:
    docker部署springBoot项目
    linux下查看文件内容命令
    nohup后台运行jar与关闭
    nohup优化输出nohup.out日志信息
    Go 精妙的互斥锁设计
    ts找不到全局对象,报错:Cannot find name '__dirname
    定义vscode终端主题色
    element-ui按需引入报错Cannot find module 'babel-preset-es2015' 及多组件引入报错
    c# UWP 墨迹 手写识别
    c# yield return
  • 原文地址:https://www.cnblogs.com/fxiaoquan/p/2908749.html
Copyright © 2011-2022 走看看