Tag: 媒体播放器

为后台播放streamaudio播放器

目前,我正在开发一个需要播放stream媒体audio的应用程序。 我正在使用mpmovieplayercontroller来播放streamaudio。 它对我来说工作得很好。 但是,当设备进入睡眠模式或进入后台模式时,audio正在停止。 我也想在这两种模式下播放audio。 如何在这两种模式下播放stream式audio? 我也向另一位玩家开放。

iOS:降低包含iPod音乐的MPMediaItem的比特率

我正在制作一个应用程序,将主题音乐添加到video中。 有些用户抱怨说,如果他们的音乐是苹果无损格式,那么video将会太大。 我发现这是因为我使用的AVMutableComposition只是把原来的音乐格式放入我生成的video中。 那么有什么办法可以降低MPMediaItem中的音乐比特率,或者改变它被编码的格式? 这是我用来添加音乐到video的代码的代码片段。 AVMutableComposition* mixComposition = [AVMutableComposition composition]; AVMutableCompositionTrack *compositionAudioTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid]; [compositionAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) ofTrack:[[audioAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:nil]; AVMutableCompositionTrack *compositionVideoTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid]; [compositionVideoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) ofTrack:[[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:kCMTimeZero error:nil]; AVAssetExportSession* _assetExport = [[AVAssetExportSession alloc] initWithAsset:mixComposition presetName:AVAssetExportPresetPassthrough]; NSURL *exportUrl = [NSURL fileURLWithPath:_videoOutputPath]; if ([[NSFileManager defaultManager] fileExistsAtPath:_videoOutputPath]){ [[NSFileManager […]

MPMoviePlayerController缓冲状态

只是一个很短的问题: 我怎样才能找出是否MPMoviePlayerController实例缓冲数据(在这种情况下,从networkingstreamaudio数据)? 感谢任何帮助,祝你有美好的一天!

观察当前播放时间并显示一个间隔覆盖

我正在制作一段video,以video的特定时间间隔显示叠加层。 我设法让video播放。 现在我的目标是观看/观察当前播放时间值,并在播放时间为2秒时暂停video。 经过一番研究发现,当前播放时间不支持KOV。 所以我需要实现这个解决scheme,但我不知道在哪里放置代码 – 我对Objective C非常陌生。我一直试图把它放在ViewController(我唯一的看法),但它的书面提示的方式是放置在其他地方… 我应该为它创build一个新的控制器吗? 还是我重写MediaPlayer框架的方法? 这是我的代码: #import <UIKit/UIKit.h> #import <MediaPlayer/MediaPlayer.h> @interface ViewController : UIViewController @property (strong, nonatomic) MPMoviePlayerController *movieController; @property(nonatomic) NSTimeInterval currentPlaybackTime; @end #import "ViewController.h" @interface ViewController () @end @implementation ViewController – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } […]

如何在UIWebView中暂停媒体播放

我目前正在研究支持iPad上多个标签的浏览器。 问题是iOS不允许多个标签同时播放audio/video,尝试这样会导致所有audio停止而不能返回的问题出现。 我注意到,谷歌浏览器的浏览器实际上停止在不活动的选项卡中的媒体。 我想知道他们是如何去做的。 我知道可以通过[webView loadRequest:NSURLRequestWithString(@"about:blank")];完全停止媒体[webView loadRequest:NSURLRequestWithString(@"about:blank")]; 声明,但这会导致页面显示一个空白屏幕。 我只想暂停媒体。 有一些JavaScript我可以执行,将停止UIWebView中的媒体? 如果是这样,它会是什么样子(我从来没有接触过JavaScript)? 提前致谢!

audio播放locking屏幕控件不在iPhone上显示

我正在使用iOS 10.2在我的实际iPhone 6s设备上进行testing。 我正在播放stream式audio,并且能够播放/暂停audio,跳过曲目等。我还启用了背景模式,并在后台播放audio,并正常播放列表。 我遇到的唯一问题是获取locking屏幕控件来显示。 没有任何显示… 在我的MainViewController的viewDidLoad(),当我的应用程序启动时,我把这个… func setupAudioSession(){ UIApplication.shared.beginReceivingRemoteControlEvents() do { try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: AVAudioSessionCategoryOptions.mixWithOthers) self.becomeFirstResponder() do { try AVAudioSession.sharedInstance().setActive(true) print("AVAudioSession is Active") } catch let error as NSError { print(error.localizedDescription) } } catch let error as NSError { print(error.localizedDescription) } } 然后在我开始播放audio后在我的AudioPlayer类中调用… func setupLockScreen(){ let commandCenter = MPRemoteCommandCenter.shared() commandCenter.nextTrackCommand.isEnabled = true commandCenter.nextTrackCommand.addTarget(self, action:#selector(skipTrack)) […]

在mobilevlckit中播放/转发2 x 3x 4x速度的video不起作用

在我的项目中,我编码像下面这样的trickplay,但代码没有工作。如何解决这个问题。 如果你们有任何想法,帮助我。 func didTrickPlayValueChanged(_ atRate: Float!){ if( atRate == 1.0){ vlcMediaPlayer.fastForward(atRate: 1.00) } else if(atRate == 2.0){ vlcMediaPlayer.fastForward(atRate: 2.00) } else if(atRate == -2.0){ vlcMediaPlayer.fastForward(atRate: -2.00) } else if(atRate == -1.0){ vlcMediaPlayer.fastForward(atRate: -1.00) }else{ vlcMediaPlayer.fastForward(atRate: 1.00) } }

无法在iOS 4中播放video

我已经编写代码在iPhone OS 3.1.3中播放video,video播放良好。 但是当我试图用相同的代码播放video,然后video不在iOS 4中播放。 我知道iOS 4的媒体播放器框架已更改。有没有什么办法可以在不同的操作系统上播放video而无需准备单独的二进制文件?

mediaplayer框架不能在iOS 6中播放video

我正在使用iOS 6中包含的mediaplayer框架来尝试从应用内播放电影。 我导入,然后: -(IBAction)playMovie:(id)sender { NSString *filepath = [[NSBundle mainBundle] pathForResource:@"buyTutorial" ofType:@"mov"]; NSURL *fileURL = [NSURL fileURLWithPath:filepath]; MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL]; [self.view addSubview:moviePlayerController.view]; moviePlayerController.fullscreen = YES; [moviePlayerController play]; } 当调用这个函数时,视图会变成空白屏幕和无限加载。 我已经尝试了许多其他版本的这种实现,结果各不相同,都失败了。 login中的特殊情况是: 2012-11-05 21:19:27.900 [MPAVController] Autoplay: Disabling autoplay for pause 2012-11-05 21:19:27.902 [MPAVController] Autoplay: Disabling autoplay 2012-11-05 21:19:27.977 [MPAVController] Autoplay: Disabling autoplay for […]

MPNowPlayingInfoCenter是否与AVAudioPlayer兼容?

我开始玩AVAudioPlayer ,然后像这样设置nowPlaying字典: NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init]; MPMediaItemArtwork *albumArt = [[MPMediaItemArtwork alloc] initWithImage: [UIImage imagedNamed:@"AlbumArt"]]; [songInfo setObject:@"Audio Title" forKey:MPMediaItemPropertyTitle]; [songInfo setObject:@"Audio Author" forKey:MPMediaItemPropertyArtist]; [songInfo setObject:@"Audio Album" forKey:MPMediaItemPropertyAlbumTitle]; [songInfo setObject:albumArt forKey:MPMediaItemPropertyArtwork]; [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo]; locking屏幕始终显示一个暂停button。 我正确接收遥控器事件,并且可以通过遥控器事件切换播放/暂停,但即使在播放时,locking屏幕仍然显示“暂停”。 现在我看到了这个与MPMoviePlayerController的工作。 有人可以解释一下MPNowPlayingInfoCenter如何确定它是否应该显示播放或暂停button?