2009-05-12 7 views
1

Je diffuse un fichier MP3 en streaming en utilisant MPMoviePlayer, et je voudrais avoir une image affichée à la place du logo Quicktime par défaut en arrière-plan.MPMoviePlayer Audio Album art

J'ai trouvé un moyen d'avoir une image superposée au lecteur, mais le problème avec cela, c'est que vous devez taper à l'extérieur de l'image pour faire apparaître les commandes du lecteur. Et quand ils apparaissent, ils sont sous l'image.

Quelqu'un sait-il comment faire?

Merci, John

Répondre

0

La plupart de toutes les applications sur l'iPhone est faite d'une hiérarchie de vues. Vous pouvez monter jusqu'au nœud racine supérieur du lecteur vidéo et descendre les vues enfant de manière récursive et définir la valeur hidden sur OUI jusqu'à ce que vous trouviez le bon élément, puis insérez votre UIImageView sous cet élément. De cette façon, les contrôles restent en haut et répondent toujours aux entrées de l'utilisateur.

Le risque que vous courez est si Apple change l'interface utilisateur MPMoviePlayer et mélange la hiérarchie de vue, mais vous aurez probablement beaucoup de préavis et peut patcher votre application pour permettre la nouvelle mise en page. Il ya une question de savoir si c'est kasher pour les applications appstore, mais de nombreuses applications actuelles (en particulier celles de prise de photos/d'appareils photo) le font pour se débarrasser des éléments de fenêtre standard.

+0

Je trouve que si vous faites une première recherche en profondeur, celle à laquelle vous voulez ajouter UIImageView en tant que sous-vue est la première que vous visitez. – mclin

0

Utilisez AVAudioPlayer et implémentez votre propre interface utilisateur.

0

il fonctionnera vérifier

MPMoviePlayerController *moviePlayerController=[[MPMoviePlayerController alloc] initWithContentURL:theURL]; 
moviePlayerController.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Default.png"]]; 
2

backgroundColor est dépréciée, et la plongée dans les structures de VERNISSAGE est dangereux. Cela a bien fonctionné pour moi:

 UIImageView *coverImageView = [[UIImageView alloc] initWithImage:coverImage]; 
     coverImageView.contentMode = UIViewContentModeScaleAspectFit; 
     coverImageView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; 
     coverImageView.frame = moviePlayerController.view.bounds; 
     [moviePlayerController.view addSubview:coverImageView];