首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WP8/ is 2013 MediaLibrary歌曲集为空

WP8/ is 2013 MediaLibrary歌曲集为空
EN

Stack Overflow用户
提问于 2014-04-08 18:22:04
回答 2查看 291关注 0票数 0

我正在为WP8编写一个WP8播放器应用程序,使用MediaLibrary来处理手机自己的mp3集合。我想在VS2013上的电话仿真器中测试结果,但是当我使用以下代码时:

代码语言:javascript
复制
using (MediaLibrary library = new MediaLibrary())
        {
            SongCollection songs = library.Songs;
            Song song = songs[0];
            MediaPlayer.Play(song);
        }

歌曲收藏是空的,大概是因为VS没有任何关于歌曲的媒体库的知识。

是否有任何方法在模拟器中使用假媒体库或VS使用windows的媒体库来测试这一点?我只想在继续之前看到(或听到)代码的工作:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-08 20:35:36

我已经找到解决办法了!

如果将mp3文件添加到应用程序的资产中,下面的代码将向媒体播放器库添加mp3:

代码语言:javascript
复制
private void AddSong()
    {
        Uri file = new Uri("Assets/someSong.mp3", UriKind.Relative);

        //copy file to isolated storage
        var myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();
        var fileStream = myIsolatedStorage.CreateFile("someSong.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 = "someSongName";

        var ml = new MediaLibrary();
        Uri songUri = new Uri("someSong.mp3", UriKind.RelativeOrAbsolute);
        var song = Microsoft.Xna.Framework.Media.PhoneExtensions.MediaLibraryExtensions.SaveSong(ml, songUri, metaData, Microsoft.Xna.Framework.Media.PhoneExtensions.SaveSongOperation.CopyToLibrary);            
    }

我还需要补充一句:

代码语言:javascript
复制
using System.IO.IsolatedStorage;

我很想为这件事申请功劳,但我在这里找到了答案:

http://social.msdn.microsoft.com/forums/wpapps/en-US/f5fa73da-176b-4aaa-8960-8f704236bda5/medialibrary-savesong-method

票数 1
EN

Stack Overflow用户

发布于 2014-04-08 18:26:39

默认情况下,模拟器上的媒体库为空。我也不认为能够自动地将开发机器的音乐文件夹连接到模拟器来进行这种测试。它可能是可以手动配置模拟电话与电子邮件帐户!然后用这种方式将音乐保存到它上,但即使这样做有效,每次重新启动模拟器时,您都必须这样做。

最好的测试方法是不要部署到真正的设备上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22945204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档