1

次のコードを使用して、S60 5th エディションで音楽ファイルを再生しようとしています。

_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は影響しません。

これに対する回避策はありますか?

ありがとうございました。

4

1 に答える 1

0

うまくいかない理由はわかりませんが、あなたのコードについて気づいたことの 1 つは、次の呼び出しです。

iApaTask.SwitchOpenFile(KMusicFilename);

エラー コードをチェックしません。ゼロ以外のエラー コードが表示されるかどうかを確認すると、問題の原因を特定するのに役立つ場合があります。iAplsSession.StartDocument(...)(通話も同様です。)

于 2009-12-29T16:09:24.427 に答える