I was able to replicate my issue.  In my original code, I was only
allowing the movie to be played with the embedded controls.  When I
set the contentURL a second time, my embedded controls were not
showing, so I couldn't play the movie again.  As I mentioned
previously, Matt's code worked great.  However, I can replicate my
issue by removing line 4 below.

1 - (IBAction)play1:(id)sender { // button 1
2   [self.thePlayer setContentURL: [[NSBundle mainBundle]
3        URLForResource:@"blend1" withExtension:@"mp4"]];
4    [self.thePlayer play];
5 }

I only want to control the movie from the embedded controls, so I
don't want to programmatically play it.  In the MPMediaPlayback
protocol, there is a prepareToPlay method, which must always be called
before the movie starts playing, and which is called if needed by
play.

So, replacing line 4 with

[self.thePlayer prepareToPlay];

makes my code work.

Thanks again for your help, Matt!

-Heath Borders
heath.bord...@gmail.com
Twitter: heathborders
http://heath-tech.blogspot.com



On Tue, Mar 22, 2011 at 8:30 AM, Heath Borders <heath.bord...@gmail.com> wrote:
> Your code worked!  Thanks!  The main difference between our snippets
> was that you added the MPMoviePlayerController's view directly to the
> UIViewController's view rather than putting it in a holder view (which
> I doubt would matter) and that you aren't using the embedded controls.
>  I'll post back when I figure out what went wrong.
>
> -Heath Borders
> heath.bord...@gmail.com
> Twitter: heathborders
> http://heath-tech.blogspot.com
>
>
>
> On Mon, Mar 21, 2011 at 11:50 PM, Matt Neuburg <m...@tidbits.com> wrote:
>> On Mon, 21 Mar 2011 22:59:04 -0500, Heath Borders <heath.bord...@gmail.com> 
>> said:
>>>That's exactly what I did.  I have a brand new project with just a
>>>ViewController with 3 views
>>>
>>>[SNIP ridiculous quantities of code]
>>
>> I can't read that. And it isn't what I suggested you do. I said make a 
>> *minimal* project. Enough to prove to yourself that setting the contentURL 
>> works. And no more than that! Here's my code; this is what I mean when I say 
>> "minimal" and "simple" and stuff like that:
>>
>> - (void)viewDidLoad {
>>    [super viewDidLoad];
>>    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] init];
>>    player.shouldAutoplay = NO;
>>    player.controlStyle = MPMovieControlStyleNone;
>>    [player.view setFrame: CGRectMake(0,0,200,150)];
>>    [self.view addSubview: player.view];
>>    self.thePlayer = player;
>>    [player release];
>>
>> }
>> - (IBAction)play1:(id)sender { // button 1
>>    [self.thePlayer setContentURL: [[NSBundle mainBundle]
>>        URLForResource:@"blend1" withExtension:@"mp4"]];
>>    [self.thePlayer play];
>> }
>>
>> - (IBAction)play2:(id)sender { // button 2
>>    [self.thePlayer setContentURL: [[NSBundle mainBundle]
>>         URLForResource:@"xbox" withExtension:@"mp4"]];
>>    [self.thePlayer play];
>> }
>>
>> That's all. It works. So then you build up from there towards what you 
>> *really* want to do. When it stops working, that's when you broke it. m.
>>
>>
>> --
>> matt neuburg, phd = m...@tidbits.com, <http://www.apeth.net/matt/>
>> A fool + a tool + an autorelease pool = cool!
>> Programming iOS 4!
>> http://www.apeth.net/matt/default.html#iosbook
>
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to