媒体文件无法切换和播放

发布于 2024-08-16 11:26:39 字数 878 浏览 3 评论 0原文

我正在尝试使用以下代码在 S60 第五版上播放音乐文件:

_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 函数对其没有任何影响。

有解决方法吗?

谢谢。

I am trying to play a music file on S60 5th edition with the following code:

_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();
   }

The problem is that this code sample does not work if the music player is already running. The media file that was already playing keeps playing, the function SwitchOpenFile does not have any effect on it.

Is there a workaround for this?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

望笑 2024-08-23 11:26:39

我不确定为什么它不起作用,但我注意到您的代码的一件事:此调用:

iApaTask.SwitchOpenFile(KMusicFilename);

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

I'm not sure why it doesn't work, but one thing I notice about your code: this call:

iApaTask.SwitchOpenFile(KMusicFilename);

does not check the error code; see if you get an non-zero error code and this may help determine what the problem is. (The same applies to the iAplsSession.StartDocument(...) call).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文