2009-12-22 11 views
1

Je suis en train de lire un fichier musical sur S60 5ème édition avec le code suivant:fichier multimédia ne peut être activé et joué

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

Le problème est que cet exemple de code ne fonctionne pas si le lecteur de musique est déjà en train de courir. Le fichier multimédia en cours de lecture continue de jouer, la fonction SwitchOpenFile n'a aucun effet sur elle.

Y a-t-il une solution de contournement pour cela?

Merci.

Répondre

0

Je ne sais pas pourquoi cela ne fonctionne pas, mais une chose que je remarque au sujet de votre code: l'appel:

iApaTask.SwitchOpenFile(KMusicFilename); 

ne vérifie pas le code d'erreur; voyez si vous obtenez un code d'erreur différent de zéro, ce qui peut aider à déterminer le problème. (La même chose s'applique à l'appel iAplsSession.StartDocument(...)).

+0

J'ai vérifié la valeur de retour pendant le débogage, et c'est KErrNone. –