2010-03-31 4 views
2

Je suis en train de perdre le son "vidéo" pendant la lecture.iPhone MPMoviePlayerController perdu le son lors de la lecture vidéo sur un périphérique réel

J'ai suivi toutes les normes mais la vidéo/audio est parfois coupée ou disparaît juste à la fin du fichier vidéo. Je ne sais pas pourquoi. Est-ce que quelqu'un sait quel pourrait être le problème? Cela ne se produit que lors de l'exécution de l'application sur le périphérique réel, je ne peux pas reproduire le problème sur le simulateur.

Un avertissement "didReceiveMemory" peut-il provoquer cela? Je reçois parfois ce message quand cela arrive.

Nous vous remercions de votre aide. Voir les détails ci-dessous.

Le fichier vidéo est diffusé via une adresse URL, format en MPEG-4 Movie, taille inférieure à 6,2 Mo.

J'ai le code suivant:

- (IBAction) playMovie:(NSString*)theUrl 
      setMovieType:(NSString *)theType 
      setPlayOption:(int)theOption 
setSenderUIButton:(UIButton *) thisSender 
{ 
    NSString *getvdoUrl = [[NSString alloc] initWithString:theUrl]; 
    NSURL *thisVdoURL = [NSURL URLWithString:getvdoUrl]; 
    [getvdoUrl release]; 
    getvdoUrl = nil; 
    MPMoviePlayerController *movieplayer = [[MPMoviePlayerController alloc] 
         initWithContentURL:thisVdoURL];  
    thisVdoURL = nil; 
    if (movieplayer) 
    { 
     self.vdoPlayer = movieplayer; 
     [movieplayer release]; 
     [[NSNotificationCenter defaultCenter] addObserver:self 
                selector:@selector(moviePlayBackDidFinish:) 
                 name:MPMoviePlayerPlaybackDidFinishNotification 
                object:self.vdoPlayer]; 
     [self.vdoPlayer play]; 
    } 

} 

-(void) moviePlayBackDidFinish:(NSNotification*)theNotification 
{ 



    MPMoviePlayerController *movieplayer= [theNotification object];  
     [[NSNotificationCenter defaultCenter] removeObserver:self 
     name:MPMoviePlayerPlaybackDidFinishNotification 
     object:movieplayer]; 
    movieplayer.initialPlaybackTime = 0.0; 
    [movieplayer stop];   
} 

Voici les nouveaux messages d'avertissement que je recevais avant le début du fichier vidéo à jouer.

Avertissement: Impossible de lire des symboles pour "/Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.1.3 (7E18) /Symbols/System/Library/VideoDecoders/VCH263.videodecoder" (fichier non a trouvé).

Avertissement: Impossible de lire des symboles pour "/Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.1.3 (7E18) /Symbols/System/Library/VideoDecoders/H264H1.videodecoder" (fichier non trouvé) .

Avertissement: Impossible de lire des symboles pour "/Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.1.3 (7E18) /Symbols/System/Library/VideoDecoders/MP4VH1.videodecoder" (fichier non trouvé) .

2010-03-29 16: 57: 25,830 .... v2 [4663: 207] réglage: /// fichier private/var/mobile/Applications/7DCB1FCC-7268-4551-B737-8B418CA4A07E/tmp/MediaCache/[html]

+0

Je reçois des avertissements similaires et des problèmes de mémoire impairs aussi, trouver une solution? – Shizam

Répondre

0

vous devriez essayer un autre fichier MP4, ils ne sont pas tous égaux - ils devraient être optimisés pour le streaming si vous les créez de Quicktime - « laissé entendre » si votre les créer avec le aide de mp4box par exemple. Il pourrait y avoir un problème avec les horodatages audio de votre fichier - essayez de le lire via le navigateur Safari et/ou quicktime s'il y a des problèmes. Je suppose que vous suivez les paramètres de débit/profil/niveau maximum pour H264 et AAC. Si vous manquez vraiment de mémoire dans votre téléphone, cela peut arriver, le mediaplayer fonctionne en processus séparé - pas directement dans votre application (je suppose qu'il lui permet d'utiliser le décodeur GPU et le sandbox). Jouez-vous cette vidéo une seule fois dans l'application? Retirez-vous la notification par la suite? - Il suffit généralement de l'enregistrer une seule fois avant même de jouer à la vidéo. Quelque chose dépend du firmware que vous compilez sous et en cours d'exécution, les bugs ont tendance à être corrigés dans les versions ultérieures, mais à partir de l'API entière 4.0 a changé et le code doit également être mis à jour ...Les messages d'avertissement sont inutiles et communs au simulateur - ils proviennent du simulateur qui tente d'atteindre les symboles de débogage pour les modules en dehors du SDK - Quicktime fonctionne sur votre ordinateur Quicktime - vous pouvez voir votre pilote de carte son et plus de codecs selon sur votre installation.

Questions connexes