In my app we are using AVPlayer to play a audio file. In iOS 11 Beta versions the audio is playing fine but the player is not visible. its just displaying a black background.
can any one help me to solve this issue?
_avpvc = [[AVPlayerViewController alloc] init];
AVPlayerItem *aPlayerItem = [[AVPlayerItem alloc] initWithURL:url];
_avpvc.player = [[AVPlayer alloc] initWithPlayerItem:aPlayerItem];
_avpvc.player = [AVPlayer playerWithURL:url];
[self.view addSubview:self.avpvc.view];
self.avpvc.view.frame = self.audioPlayerView.bounds;
self.avpvc.view.autoresizingMask =
UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
[self.audioPlayerView addSubview:self.avpvc.view];
[self.avpvc didMoveToParentViewController:self];
[_avpvc.player play];
You need to create your own custom player to serve the purpose.Using UISliders and UIbuttons.By Default you won't get Player UI.
Related
I am trying to play mp3 and other audio formats stored on a server with AVPlayer, but every time I get error EXC_BAD_ACCESS.
However, I am able to play these audio files on the browser on chrome.
My Code is in viewDidLoad like this
AVPlayerViewController *playerController = [AVPlayerViewController new];
AVPlayer *songPlayer = [[AVPlayer alloc] initWithURL:[NSURL URLWithString:#"http://mplayer.example.com/Recordings/sun.mp3"]];
playerController.player = songPlayer;
playerController.view.frame = self.view.frame;
[playerController.view sizeToFit];
playerController.videoGravity = AVLayerVideoGravityResizeAspect;
playerController.showsPlaybackControls = YES;
[songPlayer play];
[self.view insertSubview:playerController.view atIndex:0];
I can't figure out what's wrong with my code because my URL is correct and I can fetch audio files from this URL.
You provided URL showing me this message "This webpage is not available
ERR_NAME_NOT_RESOLVED". I tested your code with this URL "http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4". It is working fine.
I want to add action on the all button who shows bellow picture . I add this view through .. following code --
AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init];
playerViewController.view.frame = CGRectMake(10,10, _bgView.frame.size.width-20, _bgView.frame.size.height-20);
playerViewController.player = [AVPlayer playerWithURL:url1];
[_bgView addSubview:playerViewController.view];
_bgView.autoresizesSubviews = TRUE;
So please help me for add the action on this buttons
Yes..... I resolve that issues... the right code is--
_playerViewController = [[AVPlayerViewController alloc] init];
_playerViewController.view.frame=CGRectMake(10,10, _bgView.frame.size.width-20, _bgView.frame.size.height-20);
_playerViewController.player = [AVPlayer playerWithURL:url1];
I have video play play. I'm displaying the video in center of the view adjusting of CGRectMake. But when i click the play button i need to play video in full screen mode automatically without pressing maximize icon. Is it possible?
MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:#"solar" ofType:#"mp4"]]];
[[moviePlayerController view] setFrame:CGRectMake(172, 210, 680, 400)];
[moviePlayerController setShouldAutoplay:NO];
[moviePlayerController setControlStyle:MPMovieControlStyleEmbedded];
[[moviePlayerController backgroundView] setBackgroundColor:[UIColor clearColor]];
[moviePlayerController prepareToPlay];
[self.view addSubview:moviePlayerController.view];
Set MoviePlayer to FullScreen by below method
mpviewController.moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
[self presentModalViewController:mpviewController animated:NO];
This will embed your video to your iOS app:
Add MediaPlayer.framework
Add your video to the root of your project
In your .h file add the following
#property(nonatomic, strong) MPMoviePlayerViewController *moviePlayer; - Put this under #interface ViewController :UIViewController;
in your .m file, add the following
#synthesize moviePlayer; -Put this under #implementation ViewController
NSString *videoPath = [[NSBundle mainBundle] pathForResource:#"your video name" ofType:#"mp4"];
NSURL *videoURL = [NSURL fileURLWithPath:videoPath];
moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL];
[self presentMoviePlayerViewControllerAnimated:moviePlayer];
First try to use add observer pattern to know when movie player begins
to play at that time switch it to full screen mode. I am giving you
the link just check it. It may help you . In this link the observer
pattern is used for checking whether the player is enter on fullscreen
and in selector method what he wants to do he did. So u can also use
same methodology and instead of checking for fullscreen u should check
for play begin and on selector method set it to full screen..
MPMoviePlayerController stops working in full screen mode // portrait orientation // iOS 7
I have a UIViewController subclass called videoPlayerViewController.
In storyboard I dragged out a UIViewController. I set the class correctly in Storyboard.
I put a button on the screen. When I click the button, it executes the method playVideo:.
- (IBAction)playVideo:(id)sender
{
NSURL *movieURL = [NSURL URLWithString:#"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"];
MPMoviePlayerController *player =
[[MPMoviePlayerController alloc] initWithContentURL: movieURL];
[player prepareToPlay];
[player.view setFrame: self.view.bounds]; // player's frame must match parent's
[self.view addSubview: player.view];
[player play];
}
I get a black screen that does nothing.
This is the simplest version of the code I've had in this method over the last 6 hours.
I've tried every StackOverflow answer out there.
I just want to play a video that I stream from the internet.
If I set:
player.movieSourceType = MPMovieSourceTypeStreaming;
the screen reads "loading" for a second, and then crashes.
What exactly am I doing wrong?
I understand there are so many MPMoviePlayerController questions out there, and to just ask a general "How does it work" question seems ludicrous. I've been at this almost 6 hours now and no Google/Stack Overflow/Apple Documentation search has made this work.
I used your provided code but created a MoviePlayerController property named mcp in the header file that I assigned to player to after creating it. That worked for me. The movie loaded and played just fine.
In the .h file:
#property (strong, nonatomic) MPMoviePlayerController *mcp;
In the .m file:
- (IBAction)playVideo:(id)sender
{
NSURL *movieURL = [NSURL URLWithString:#"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"];
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL: movieURL];
[player prepareToPlay];
[player.view setFrame: self.view.bounds]; // player's frame must match parent's
_mcp = player;
[self.view addSubview: _mcp.view];
[_mcp play];
}
Using the code at the bottom of this post I can successfully display a movie. However I need to now use moviePlayer as a property rather than a local variable. So by adding the following in the header file:
#property (retain, nonatomic) MPMoviePlayerController *mPlayer;
...and synthesizing it as:
#synthesize mPlayer = _mPlayer
Here's the original code. This works fine. All I change is the initialisation line where instead of using a local variable I use the property. A
MPMoviePlayerController * mPlayer = [[[MPMoviePlayerController alloc] initWithContentURL:videoURL] autorelease];
mPlayer.shouldAutoplay=YES;
[self.welcomeImage setUserInteractionEnabled:YES];
[mPlayer.view setFrame: self.welcomeImage.bounds]; // player's frame must match parent's
[self.welcomeImage addSubview:mPlayer.view];
mPlayer.scalingMode = MPMovieScalingModeAspectFit;
mPlayer.controlStyle = MPMovieControlStyleEmbedded;
[mPlayer prepareToPlay];
[mPlayer play];
I just get a black box, no controls or video. What am I doing wrong?
Your not using your synthesized property. Change mPlayer to _mPlayer.
_mPlayer = [[[MPMoviePlayerController alloc] initWithContentURL:videoURL] autorelease];
_mPlayer.shouldAutoplay=YES;
[self.welcomeImage setUserInteractionEnabled:YES];
[_mPlayer.view setFrame: self.welcomeImage.bounds]; // player's frame must match parent's
[self.welcomeImage addSubview:_mPlayer.view];
_mPlayer.scalingMode = MPMovieScalingModeAspectFit;
_mPlayer.controlStyle = MPMovieControlStyleEmbedded;
[_mPlayer prepareToPlay];
[mPlayer play];
This should work as long your videoURL is valid.