2010-12-16 175 views
1

J'utilise avfoundation pour enregistrer de la vidéo depuis mon appareil et utiliser imagepicker pour sélectionner une vidéo de la galerie, puis la télécharger sur le serveur local. Chaque fois que je vais chercher la vidéo téléchargée à partir du serveur, il ne sera pas joué en utilisant mpmovieplayer, mais si j'ai stocké une autre vidéo de format .mov, il jouera bien. et parfois ma vidéo a aussi bien joué. ma question est ici: - est-ce à cause du framerate de la vidéo - ou est-ce en raison de problème de streaming?Diffusion vidéo en continu dans iphone

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:outputFileURL]) 
{ 
    [library writeVideoAtPathToSavedPhotosAlbum:outputFileURL 
           completionBlock:^(NSURL *assetURL, NSError *error) 
    { 
    if (error && [delegate respondsToSelector:@selector(assetLibraryError:forURL:)]) { 
             [delegate assetLibraryError:error forURL:assetURL]; 

    } 
    }]; 
} else { 
    if ([delegate respondsToSelector:@selector(cannotWriteToAssetLibrary)]) 
    { 
     [delegate cannotWriteToAssetLibrary]; 



    } 
} 

[[NSUserDefaults standardUserDefaults] setObject:outputFileURL forKey:@"StoreVideo"]; 

[library release]; 

if ([[UIDevice currentDevice] isMultitaskingSupported]) { 
    [[UIApplication sharedApplication] endBackgroundTask:[self backgroundRecordingID]]; 
} 

if ([delegate respondsToSelector:@selector(recordingFinished)]) { 
    [delegate recordingFinished]; 
} 

ci-dessus est le code que j'utilise pour sauvegarder la vidéo dans la bibliothèque de ressources après l'enregistrement.

Répondre

1

Pour diffuser la vidéo à partir d'un serveur et la lire avec MPMoviePlayer, le fichier doit être segmenté avec l'outil mediafilesegmenter. Je ne suis pas sûr si cela est fourni avec Snow Leopard, mais puisque ces outils sont fréquemment mis à jour selon Apple, vous devriez télécharger leurs dernières versions. Voir Technical Note TN2224 pour plus d'informations sur la façon d'obtenir ces outils.

L'idée est de diviser le fichier en petits segments, disons 10 secondes chacun, pour faciliter le streaming. L'outil créera une liste de lecture avec une extension m3u8. L'URL de ce fichier est ce que vous devrez fournir à MPMoviePlayer.

Même si vous ne diffusez pas en direct, vous devez encore segmenter votre vidéo, sinon elle peut être lue sur certains appareils iOS sous certaines versions d'iOS, mais ce n'est pas garanti.