Медиафайл не может быть переключен и воспроизведен - PullRequest
1 голос
/ 22 декабря 2009

Я пытаюсь воспроизвести музыкальный файл на S60 5th edition со следующим кодом:

_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 голосов
/ 29 декабря 2009

Я не уверен, почему это не работает, но я замечаю одну вещь в вашем коде: этот вызов:

iApaTask.SwitchOpenFile(KMusicFilename);

не проверяет код ошибки; Посмотрите, получите ли вы ненулевой код ошибки, и это может помочь определить, в чем проблема. (То же относится и к вызову iAplsSession.StartDocument(...)).

...