iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   Video afspelen (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/40428-video-afspelen.html)

Tim14ww 26-07-09 19:48

Video afspelen
 
Hoi,

ik heb al wat gezocht op internet maar kon niks DUIDELIJKS vinden.

Heeft er iemand een voorbeeldcode/Tutorial (niet van Apple zelf graag dat vind ik onduidelijk) Hoe je een film afspeelt in je app (mag extern vanaf een website, mag ook dat je de film erbij stopt)..



----------------

Kan iemand een Voorbeeldje maken? Eventueel tegen betaling?

Ik hoor het wel.

Iemand?

Greetz,

wbroek 26-07-09 21:31

Om video af te spelen kun je de MPMoviePlayerController gebruiken (zie Apple documentatie)

Voorbeeldje:
Code:

NSURL *url = [NSURL URLWithString:@"http://www.apple.com/iphone.m4v"];
MPMoviePlayerController *theMovie=[[[MPMoviePlayerController alloc] initWithContentURL:url] retain];

Als je een lokaal bestand wilt afspelen maak je van de 'url' een point naar lokaal bestand zoals
Code:

NSString *path = [[NSBundle mainBundle] pathForResource:@"iphone"
➥ofType:@"m4v"];
NSURL *url = [NSURL fileURLWithPath:path];

Hierna kun je de notificaties zetten zodat je bijvoorbeeld weet waneer hij afgelopen is (of de gebruiker op klaar drukt).

Tim14ww 26-07-09 21:56

En dit plak je dan in een IBAction??

wbroek 26-07-09 22:09

Dat kan, dat ziet er dan ongeveer zo uit:
Code:

- (IBAction) startPlayback : (id) sender {
NSString *path = [[NSBundle mainBundle] pathForResource:@"iphone" ofType:@"m4v"];
MPMoviePlayerController* theMovie=[[MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:path]];
[theMovie play];
}


Matisse 27-07-09 14:30

Citaat:

Oorspronkelijk geplaatst door Tim14ww (Bericht 329733)
En dit plak je dan in een IBAction??

Even off topic: IBAction is niets meer of minder dan een keyword om InterfaceBuilder te vertellen welke selectors hij kan gebruiken om te linken met UI elementen. Als je je interface volledig vanuit code genereert, is er nergens een IBAction te bespeuren. Hetzelfde geldt voor IBOutlet. Ik geef deze opmerking maar even omdat je vraag nogal vreemd overkomt in deze context.

Tim14ww 27-07-09 20:15

Citaat:

Oorspronkelijk geplaatst door Matisse (Bericht 329971)
Even off topic: IBAction is niets meer of minder dan een keyword om InterfaceBuilder te vertellen welke selectors hij kan gebruiken om te linken met UI elementen. Als je je interface volledig vanuit code genereert, is er nergens een IBAction te bespeuren. Hetzelfde geldt voor IBOutlet. Ik geef deze opmerking maar even omdat je vraag nogal vreemd overkomt in deze context.

Nee oke, maar ik wist niet hoe ik dit anders moest formuleren.

Kan er iemand niet even een klein opzetje voor me in elkaar zetten? ik snap er echt geen snars van.

Greetz,

Eventueel tegen betaling!

Matisse 28-07-09 11:31

Wat lukt er dan niet?

Tim14ww 28-07-09 21:33

Citaat:

Oorspronkelijk geplaatst door Matisse (Bericht 330453)
Wat lukt er dan niet?


Dit is mijn MainView.h:

Code:

#import "MainView.h"
#import "HomeView.h"
#import "FilmView.h"

@implementation MainView

-(void)awakeFromNib{
        [self addSubview:homeView];
}

-(void)switchToFilmView{
        [homeView removeFromSuperview];
        [self addSubview:filmView];
}

-(IBAction)pushInfo {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Info:"
                                                                                                        message:@"Copyright 2009+ Tim van Beers \n M&T Productions"
                                                                                                  delegate:nil
                                                                                  cancelButtonTitle:@"OK"
                                                                                  otherButtonTitles:nil];
        [alert show];
        [alert release];
}


- (IBAction) startPlayback : (id) sender {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"splash" ofType:@"m4v"];
        MPMoviePlayerController* theMovie=[[MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:path]];
        [theMovie play];
}
       
       
@end

Actie gekoppeld aan een Knop, maar als ik hem probeer zegt de simulator:

TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION_

Iemand?

Matisse 29-07-09 13:14

Citaat:

Oorspronkelijk geplaatst door Tim14ww (Bericht 330701)
Dit is mijn MainView.h

Je bedoelt MainView.m? Is MainView een UIView of UIViewController?

Als je een TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION_ krijgt, moet je eens kijken in de Xcode console. Daar staat steeds een duidelijke beschrijving van wat er exact fout liep en het zal je normaal verder helpen.

Je kan ook een breakpoint zetten op "objc_exception_throw", dan kan je zien waar het juist fout liep.

Rockafello 30-07-09 13:52

Ik heb nog geen ervaring met de moviecontroller, maar moet je die ook niet ergens toevoegen aan een view?

Bij welke actie krijg je overigens de uncaught exception? of op welke regel? je kan tussen de regels NSLog(@"regel bla"); zetten, dan weet je precies bij welke regel al je er niet uitkomt.

wbroek 30-07-09 14:20

Nee, de mpmoviecontroller is een modal view die standaard boven op alles komt te liggen. Zodra je play aanroept verschijnt hij. Als hij klaar is of op DONE wordt gedrukt verdwijnt hij

ulquiorra 30-07-09 14:40

de Mpmovieplayer controller is een quicktime (singleton)object en als het goed is geen modelview.

Malork 30-07-09 21:08

Citaat:

Oorspronkelijk geplaatst door ulquiorra (Bericht 331391)
de Mpmovieplayer controller is een quicktime (singleton)object en als het goed is geen modelview.

Toch is het een VIEW, een MODAL View...wat dus betekend dat hij boven alle andere views komt...

Tim14ww 05-08-09 16:02

Citaat:

Oorspronkelijk geplaatst door Matisse (Bericht 330896)
Je bedoelt MainView.m? Is MainView een UIView of UIViewController?

Als je een TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION_ krijgt, moet je eens kijken in de Xcode console. Daar staat steeds een duidelijke beschrijving van wat er exact fout liep en het zal je normaal verder helpen.

Je kan ook een breakpoint zetten op "objc_exception_throw", dan kan je zien waar het juist fout liep.

MainView.m is een UIView,

Console says:

GDB: Interrupted.

Help alsjeblieft, ik heb het echt nodig.

Matisse 05-08-09 16:55

Citaat:

Oorspronkelijk geplaatst door Tim14ww (Bericht 334206)
MainView.m is een UIView

Dan staat je implementatie van die IBOutlets in de verkeerde file. Dezen moeten in je controller klasse staan.

ulquiorra 11-08-09 15:39

Citaat:

Oorspronkelijk geplaatst door Malork (Bericht 331551)
Toch is het een VIEW, een MODAL View...wat dus betekend dat hij boven alle andere views komt...

Weet je dat zeker .. want ik ben dit tegengekomen.
Safari Books Online - 9780321591180 - The iPhone? Developer's Cookbook: Building Applications with the iPhone SDK


Like other examples in this chapter, the MPMoviePlayerController plays by its own rules. You do not push it onto a navigation stack. You do not invoke it modally.


Maar misschien dat ik het verkeerd begrijp..


Alle tijden zijn GMT +2. Het is nu 20:19.