wp8.1后台音频问题,求大神解答。

放****的 UID.898284
2015-04-24 发表

后台音乐播放实现过程中看了channle9的视频,但源码是单曲播放的,之后应用内各种处理可以自动的下一曲了上一曲了,但发现后台后没法自动切歌了,之后看了微软官方的例子,感觉考虑的太周全,代码量太多了,在myplaylist里随便写了两句和backgroundaudiotask交互,发现也可以换歌曲。但是音乐曲目都在主程序,播放列表和后台音频任务是两个组件,歌曲怎么传过来?? 真心压力山大, 然后我尝试着在获取歌曲的时候,直接把json数据写到SD卡上去了,心想着即使应用挂起,SD卡数据也拿到了,然后在我的播放列表组件里读取就可以了。但是不知道为什么,我是写在uvc下一曲目按钮触发后的,点下一曲之后,读取的代码卡一下,直接跳过,歌曲也停止了。也没什么异常。 有没有大神做过这方面的,对小白进行指导一下,真是谢谢了。

下面就是大致的代码,在其他页面,比如主页面放了按钮和文本框测试了一下,json可以读取出来的,但不知道为什么一后台,这组件自己读不出来了。希望大神指导指导,{:6_243:}


case SystemMediaTransportControlsButton.Next:
mylist.nextsong();


public async void nextsong()
{
id++;
uu = await readCustomersFromSDCard("store", "songs.txt");
string source = uu.datas[id].file;
mediaPlayer.SetUriSource(new Uri(source));
mediaPlayer.Play();
}







private async Task<Userdata> readCustomersFromSDCard(string foldername, string filename)
{
var devices = Windows.Storage.KnownFolders.RemovableDevices;

var sdCards = await devices.GetFoldersAsync();

if (sdCards.Count == 0) return null;

var firstCard = sdCards[0];

StorageFolder notesFolder = await firstCard.GetFolderAsync(foldername);

Stream stream = await notesFolder.OpenStreamForReadAsync(filename);

DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Userdata));

Userdata result = serializer.ReadObject(stream) as Userdata;

stream.Dispose();

return result;
}




敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
er****ng UID.797327
2015-04-24 回复

换个组件,这个组件不大合适

wcavell UID.34926
2015-04-25 回复

使用 IBackgroundTask + BackgroundMediaPlayer

vbfool UID.352791
2015-04-27 回复

你想保存播放列表么?告诉你一个神器——FurtherList。

放****的 UID.898284
2015-05-01 回复

Quote***链接停止解析***
你想保存播放列表么?告诉你一个神器——FurtherList。


谢谢,我查不到关于futherlist的相关资料,是我反序列化的时候出了点问题,我在后台组件了反序列化的时候将JSON对应到data类上,data类成员只有list<song>,就会一直出问题,后来把data去了,把json处理了一下直接反序列化成list<song>就可以,我也不知道什么原因,很莫名其妙。 我能想到的就只有通过SD卡去让后台知道前台的列表了。

vbfool UID.352791
2015-05-02 回复

Quote***链接停止解析***
谢谢,我查不到关于futherlist的相关资料,是我反序列化的时候出了点问题,我在后台组件了反序列化的时候 ...


***链接停止解析***

相关的资料,这东西还用序列化,我是觉得不太必要就是了。

放****的 UID.898284
2015-05-04 回复

Quote***链接停止解析***
https://msdn.microsoft.com/zh-cn/library/windows/apps/hh972603.aspx

相关的资料,这东西还用序列化 ...


谢谢你。

安****m UID.1027469
2015-07-01 回复

内容已屏蔽

本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报