我正在尝试使用以下代码在S60第5版上播放音乐文件:
_LIT(KMusicFilename, "C:\\Data\\Music.mp3");
TApaTaskList iTaskList(CCoeEnv::Static()->WsSession());
TBool iExists;
TApaTask iApaTask = iTaskList.FindApp(TUid::Uid(0x102072C3));
iExists = iApaTask.Exists();
if(iExists)
{
// Music player already running
iApaTask.SwitchOpenFile(KMusicFilename);
iApaTask.BringToForeground();
}
else
{
// music player is not running and needs to be launched
RApaLsSession iAplsSession;
User::LeaveIfError(iAplsSession.Connect());
TThreadId thread;
iAplsSession.StartDocument( KMusicFilename,
thread,
RApaLsSession::ESwitchFiles );
iAplsSession.Close();
}
问题是如果音乐播放器已在运行,则此代码示例不起作用。已播放的媒体文件继续播放,函数SwitchOpenFile
对其没有任何影响。
有解决方法吗?
谢谢。
答案 0 :(得分:0)
我不确定为什么它不起作用,但有一点我注意到你的代码:这个电话:
iApaTask.SwitchOpenFile(KMusicFilename);
不检查错误代码;看看你是否得到一个非零错误代码,这可能有助于确定问题所在。 (这同样适用于iAplsSession.StartDocument(...)
电话)。