MPMoviePlayerController with a Custom Button on its toolbar
Asked Answered
D

2

4

You might have seen video through you tube in iPhone.

Normal MPMoviePlayerController has previous, next & play/pause buttons.

You tube - player has additional two buttons on it.

=> Add to favorites on the left side.

=> Email this video on right side.

I want to implement the same for my application.

But I am failed to find out the property or methods regarding - implementing this.

How do I need buttons on it?

  • When User is watching video there should no buttons on screen.
  • When user taps on video - a toolbar comes on top & at center
  • A center tool bar has generally three buttons on it ,Previous - next -play/pause
  • I want to add a button beside next button & previous button.
Disproportionation answered 20/10, 2009 at 17:18 Comment(1)
I am also trying to do same thing. This is possible now since many apps i-e vimeo & dailymotion also adding these custom button on their player. Please help!Triglyceride
I
3

I don't think you can modify the interface of an Apple provided view.
The general approach would be to play your video and then after it's done, show a view with the desired buttons/and or options for the user.

An example of this can be seen with the YouTube app on the iPhone. After the youtube video plays, the user is sent to a summary view with links to watch the video again, favourite it, share it, etc.

Idealistic answered 20/10, 2009 at 20:14 Comment(8)
Normal MPMovieplayer has previous,next & play/pause buttons. You tube video - player has additional two buttons on it. I need to know how to do that.Disproportionation
There is no access to modify that UI from your own code. Apple have privileges that 3rd parties don't. You can't add buttons to the UI without using some kind of undocumented/private API - which is forbidden by the app store approval process, and may cause your app to break when Apple update the APIs.Idealistic
Sir,You might have seen that YouTube app has added two buttons - add to favorites & Send mail to friend this video link. Is YouTube Application of iPhone developed by Apple it self?Disproportionation
Yes it is. And Apple have access to APIs that aren't made public. To this end, Apple are able to do things as they please.Idealistic
Undocumented APIs can and will change in the future which may cause your app to break whenever App update the OS. From what I could see there were no methods for arbitrarily settings buttons on the movie player controller, but there is a method to set the control mode. If you can find out what to pass in to get the youtube buttons, then I imagine you can use them, but it isn't listed anywhere, so it'll be difficult to find out. Just keep in mind what I said about undocumented APIs.Idealistic
Also, if you use this method, you'll get the same control mode view as the youtube app - which means it'll behave the same. So adding to favorites won't add to YOUR favorites, as it depends on a youtube account.Idealistic
+3 for explaining it well and doing it politely.Thyme
This is now possible. See the Vimeo iPhone app. An updated answer would be valuable.Higley
T
3

I would say that it may be possible to just set the MPMoviePlayerController's movieControlMode property to MPMovieControlModeHidden and add a subview to it with your own collection of buttons, titles, etc... But MPMoviePlayerController inherits only from NSObject, so you couldn't do that. Perhaps you can subclass MPMoviePlayerController and setup your own stuff when play is called, yet again, I imagine MPMoviePlayerController would display itself as a modal fullscreen view and hide anything you setup. :-\

If all you're looking to do is mess with the look of the controls, I DO know that you can mess around with various objects' drawRect: methods to override how bars and buttons are drawn.

For example, setting up a category or subclass of UINavigationBar and implementing drawRect: as follows will result in a custom navigation bar being drawn:

- ( void )drawRect:( CGRect )rect
{
    [ [ UIImage imageNamed:kSTNavigationBarBackgroundImageName ] drawInRect:CGRectMake( 0.0, 0.0, self.frame.size.width, self.frame.size.height ) ];
}

This replaces Apple's standard look for their navigation bars and replaces it with a custom image asset. We do this, among other things, for our apps.

Tatia answered 12/11, 2009 at 19:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.