Powered By Blogger
Showing posts with label MediaPlayer. Show all posts
Showing posts with label MediaPlayer. Show all posts

Saturday, October 20, 2012

how to implement MPMoviePlayerViewController in iPhone?

Hi every one,
Please take a look at MPMoviePlayerController integration for local/live video playing in iPhone/iPad/iPod Touch (iOS 4.0 and later..).

Step 1 : Add "MediaPlayer.framework" into your project resource.
Step 2 :  Import <MediaPlayer/MediaPlayer.h> into your class where you want to use MediaPlayer for playing videos (local/live).
Step 3 : Place below code into the controller class where you want to integrate player.

-(IBAction)btnVideoClicked:(id)sender
{
    @try
    {
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
        GetVideos *obj_video = [arrVideos objectAtIndex:[sender tag]];
        MPMoviePlayerViewController *moviePlayerViewController = [[MPMoviePlayerViewController alloc]initWithContentURL:[NSURL URLWithString:obj_video.VideoPath]];
        [moviePlayerViewController.moviePlayer setControlStyle:MPMovieControlStyleFullscreen];
        [moviePlayerViewController.moviePlayer setShouldAutoplay:YES];
        [moviePlayerViewController.moviePlayer setFullscreen:NO animated:YES];
        [moviePlayerViewController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
        [moviePlayerViewController.moviePlayer setScalingMode:MPMovieScalingModeNone];
        [moviePlayerViewController.moviePlayer setUseApplicationAudioSession:NO];
        // Register to receive a notification when the movie has finished playing. 
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(moviePlaybackStateDidChange:) 
                                                     name:MPMoviePlayerPlaybackStateDidChangeNotification 
                                                   object:moviePlayerViewController];
        // Register to receive a notification when the movie has finished playing. 
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(moviePlayBackDidFinish:) 
                                                     name:MPMoviePlayerPlaybackDidFinishNotification 
                                                   object:moviePlayerViewController];
        [self presentMoviePlayerViewControllerAnimated:moviePlayerViewController];
        moviePlayerViewController.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
        [moviePlayerViewController release];
        [pool release];
    }
    @catch (NSException *exception) {
        // throws exception
    }
}


#pragma mark -----------------------
#pragma mark MPMoviePlayer Notification Methods


-(void)moviePlaybackStateDidChange:(NSNotification *)notification
{

    MPMoviePlayerViewController *moviePlayerViewController = [notification object]; 

    if (moviePlayerViewController.moviePlayer.loadState == MPMovieLoadStatePlayable &&
        moviePlayerViewController.moviePlayer.playbackState != MPMoviePlaybackStatePlaying)
    {
        [moviePlayerViewController.moviePlayer play];
    }
   
    // Register to receive a notification when the movie has finished playing. 
    [[NSNotificationCenter defaultCenter] removeObserver:self 
                                                 name:MPMoviePlayerPlaybackStateDidChangeNotification 
                                               object:moviePlayerViewController];
    moviePlayerViewController = nil;
}

- (void) moviePlayBackDidFinish:(NSNotification*)notification

    MPMoviePlayerViewController *moviePlayerViewController = [notification object]; 
    [[NSNotificationCenter defaultCenter] removeObserver:self 
                                                    name:MPMoviePlayerPlaybackDidFinishNotification 
                                                  object:moviePlayerViewController]; 
    [self dismissMoviePlayerViewControllerAnimated];
    moviePlayerViewController = nil;


Thanks ,
Nilesh M. Prajapati

Tuesday, October 16, 2012

How to integrate live audio streaming in iPhone?

Hi everyone,
I think, all of you heard about live audio/video streaming. I'm going to share "Live Audio Streaming" example with you.
Please check this :

Step 1: First of all, you have to download these two files(AudioStreamer.h, AudioStreamer.m) from http://code.google.com/p/audiostreamer-meta/source/browse/trunk/Classes

Step 2: Add necessary frameworks and above two files into your project.

Step 3:
Implement below code to your project file.

@class AudioStreamer;

@interface CallerTuneListViewController : UIViewController
{
    AudioStreamer *streamer;
}

#import "CallerTuneListViewController.h"

#import "AudioStreamer.h"
#import <QuartzCore/CoreAnimation.h>
#import <MediaPlayer/MediaPlayer.h>
#import <CFNetwork/CFNetwork.h>
#import <AudioToolbox/AudioToolbox.h>

@implementation CallerTuneListViewController

#pragma mark ---------------------------------
#pragma mark View LifeCycle

-(void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    if ([streamer isPlaying]) {
        [self destroyStreamer];
    }
}

#pragma mark ---------------------------------
#pragma mark Memory Management

- (void)dealloc
{
    [self destroyStreamer];
    [super dealloc];
}

#pragma mark ---------------------------------
#pragma mark UIButton Actions

-(IBAction)playLiveStream:(id)sender
{
            if (![streamer isPlaying])
                {
                    [self createStreamer:AudioFilePath];
                    [streamer start];
                }
                else
                {
                    [streamer stop];
                }
}


#pragma mark ---------------------------------
#pragma mark AudioStreamer Methods

// Removes the streamer, the UI update timer and the change notification
- (void)destroyStreamer
{
    if (streamer)
    {
        [[NSNotificationCenter defaultCenter]
         removeObserver:self
         name:ASStatusChangedNotification
         object:streamer];
      
        [streamer stop];
        [streamer release];
        streamer = nil;
    }
}

// Creates or recreates the AudioStreamer object.
- (void)createStreamer:(NSString *)audioPath
{
    if (streamer)
    {
        return;
    }
  
    [self destroyStreamer];
  
    NSURL *url = [NSURL URLWithString:audioPath];
    streamer = [[AudioStreamer alloc] initWithURL:url];

    [[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(playbackStateChanged:)
     name:ASStatusChangedNotification
     object:streamer];
}

// Invoked when the AudioStreamer
// reports that its playback status has changed.
- (void)playbackStateChanged:(NSNotification *)aNotification
{
    if ([streamer isWaiting])
    {
    }
    else if ([streamer isPlaying])
    {
    }
    else if ([streamer isIdle])
    {
        [self destroyStreamer];
    }
}

I hope this will be useful to all...

Thanks ,
Nilesh M. Prajapati