媒体文件无法切换和播放

时间:2009-12-22 13:58:47

标签: c++ symbian nokia s60

我正在尝试使用以下代码在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对其没有任何影响。

有解决方法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定为什么它不起作用,但有一点我注意到你的代码:这个电话:

iApaTask.SwitchOpenFile(KMusicFilename);

不检查错误代码;看看你是否得到一个非零错误代码,这可能有助于确定问题所在。 (这同样适用于iAplsSession.StartDocument(...)电话)。