11
votes

Comment implémentez-vous un MPVolumeView?

Je souhaite que l'utilisateur puisse changer le volume du système avec un curseur et j'ai réalisé que le seul moyen de le faire est avec un MPVolumeView.

Mais je ne trouve aucun exemple de code pour cela, et chaque méthode que j'essaie de mettre en œuvre ne s'affichera pas.

Alors, quel est le moyen le plus facile et correct et le plus facile de mettre en œuvre un MPVolumeView?


1 commentaires

Il suffit d'ajouter que c'est comme une sous-assisterie de certaines visites à l'écran? Devrait faire le travail que je suppose.


3 Réponses :


11
votes

Placez-le comme générique UIView , puis utilisez l'inspecteur pour définir la classe sur MPVolumeView (garantissant ainsi que vous liez également le cadre Mediaplayer). Il sera toujours montré comme un curseur régulier dans IB, mais au moment de l'exécution, ce sera une instance de mpvolumeView et aura les styles et comportements nécessaires. Notez que cela peut ne pas fonctionner comme prévu dans le simulateur IOS, qui ne permet pas le contrôle du volume.


3 commentaires

Merci, cela fonctionne maintenant, j'ai seulement besoin d'aide pour le placer dans une visionneuse UIALERTERVIH .. Stackoverflow.com/Questtions/2829234/...


Cela fonctionne bien en changeant un UISLIDER Assurez-vous d'ajouter le MediaPlayer.framework ou bien, il sera simplement montrant comme un uislider


Merci pour l'aide. C'est vraiment ennuyeux qu'il ne fonctionne pas sur le simulateur. Si vous souhaitez toujours masquer le bouton à droite (bouton de route), ajoutez également myVolumeView.Showsroutebutton = non;



3
votes

Utilisez ceci, il l'obtiendra automatiquement

mpVolumeViewParentView.backgroundColor = [UIColor clearColor];
MPVolumeView *myVolumeView = [[MPVolumeView alloc] initWithFrame: mpVolumeViewParentView.bounds];
[mpVolumeViewParentView addSubview: myVolumeView];
[myVolumeView release];


4 commentaires

Je ne vois pas beaucoup d'aide sur la copie du code de la documentation de Apple lorsque quelqu'un demande un exemple ... développeur.apple.com/library/ios/documentation/mediaplayer/...


C'est très utile, puisque vous ne devriez pas poster des liens, mais que des solutions. Ce code sera toujours ici dans dix ans (peut-être), le lien pourrait être invalide la semaine prochaine.


Attendre. Mais par cette logique, que si ce lien est invalide dans dix ans? : O. Internet est cassé! : O. FYI 5 ans plus tard et le lien est tout à fait bien, sauf que contrairement à cet exemple, il a été mis à jour et maintenu.


^ Il n'y a aucune garantie qu'un lien de 3ème partie restera valide.



2
votes

Dans iOS 13, cela a changé. Ajout d'un curseur dans IB avec sa classe définie sur MPVolumeView code> ne fonctionne plus. Donc, la réponse acceptée ne fonctionne plus. La bonne façon, comme indiqué dans les documents Apple, est d'utiliser un uiview code> dans ib, puis dans le code Ajouter le MPVolumeView code> en tant que sous-visVIEW. Voici comment dans SWIFT:

// myVolumeViewParentView is the UIView you put in IB
let myVolumeView = MPVolumeView(frame: myVolumeViewParentView.bounds)
myVolumeViewParentView.addSubview(myVolumeView)


0 commentaires