Tag: mpmediaplayercontroller

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

我正在制作一段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. } […]

MPMusicPlayerController缓冲/预加载

在我打电话之前,有没有办法让MPMusicPlayerController缓冲区内容? 或者当你设置一个队列时,它是否默认这么做? AVAudioPlayer有-prepareToPlay方法,我听说AVQueuePlayer开始自动缓冲下一个项目,但MPMusicPlayerController具有相同的行为?

在Swift的MPMediaItemCollection的特定索引处播放歌曲

我尝试用Swift制作我自己的Musicplayer。 我需要跳转到我的MPMediaItemCollection特定的歌曲/索引,并开始播放,但我只能find像skipToNextItem()和skipToPreviousItem()方法。 有没有其他的方式来做到这一点比循环? let player = MPMusicPlayerController.systemMusicPlayer() player.setQueueWithItemCollection(mediaCollection) player.play()

模拟器在AQMEIOManager上崩溃

尝试播放audio时,模拟器崩溃。 13:22:14.211 App [2965:5603] <0xb03e7000> Error '!obj' trying to fetch default input device's sample rate 13:22:14.211 App [2965:5603] <0xb03e7000> Error getting audio input device sample rate: '!obj' 13:22:14.213 App [2965:5603] <0xb03e7000> AQMEIOManager::FindIOUnit: error '!dev'

从UITableView播放video

我的主要目标是能够点击表格视图项目并加载video。 表视图填充文档目录的内容,我已经能够成功地做到这一点,并将文件名添加到单元格的标签,我已经完成了以下代码: void)viewDidLoad { [super viewDidLoad]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder NSString *dataPath = documentsDirectory; filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:dataPath error:nil]; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [filePathsArray count]; } – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *simpleTableIdentifier = @"SimpleTableCell"; UITableViewCell *cell = […]

iOS:在某些设备上多次调用MPMusicPlayerControllerPlaybackStateDidChangeNotification

我有一个播放音乐的应用程序。 我正在使用以下代码来监听MPMusicPlayerController的播放状态更改以更新UI。 更确切地说,我在播放和暂停之间切换播放button的外观。 NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; [notificationCenter addObserver: self selector: @selector (handle_NowPlayingItemChanged:) name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification object: self.musicPlayer]; [notificationCenter addObserver: self selector: @selector (handle_PlaybackStateChanged:) name: MPMusicPlayerControllerPlaybackStateDidChangeNotification object: self.musicPlayer]; [self.musicPlayer beginGeneratingPlaybackNotifications]; 这在iPod Touch(iOS 5)和iPhone 3GS(iOS 5)上效果很好。 每当播放状态改变,我得到以下callback: [JBMediaPlayer handle_PlaybackStateChanged:] :: playbackState: 1 其中1表示MPMusicPlaybackStatePlaying 。 但是,如果我在iPad 1(iOS 5) , iPad 2(iOS 5)或iPad 3(iOS 6)上运行相同的程序,我将得到以下顺序,而不是一个单一的callback: -[JBMediaPlayer handle_PlaybackStateChanged:] :: […]

在iPhone 4.3模拟器中再次调用MPMoviePlayerPlaybackDidFinishNotification时设置contentURL

注意:请参阅底部的更新。 我有一个应用程序从列表中逐一播放video。 所以,为了testing这个function,我只用一个视图控制器创build了一个简单的应用程序。 在实现这个视图控制器之前我引用了这个博客 视图控制器被命名为TNViewController ,其实现如下: #import <UIKit/UIKit.h> #import <MediaPlayer/MediaPlayer.h> @interface TNViewController : UIViewController { @private NSMutableArray *_videoArray; int _currentVideo; MPMoviePlayerController *_moviePlayer; NSURL *_movieUrl; } @end 其实施是: #import "TNViewController.h" @implementation TNViewController – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]; [self.view setFrame:CGRectMake(0, […]

Spotify如何自定义iOS上的媒体播放控件?

Spotify在iOS上有一个非常有趣的控制中心集成。 注意下面的汉堡button。 同样的事情是在锁屏上! 他们如何做到这一点? MPMediaCenter中是否有API?

退出应用程序会导致错误“来自debugging器的消息:由于信号9而终止”

我正在编写一个基本的音乐播放器应用程序,但在处理应用程序状态转换时遇到一些问题。 我正在使用Swift 3和MPMusicPlayerController.systemMusicPlayer() 目标是这样的: 1)当用户点击主页button和应用程序进入BG(作品)保持音乐播放 2)停止播放器(myMP.stop())如果用户退出应用程序(有时工作,其他时间抛出错误) 我使用基于可能的行为的打印语句来追踪stream程,并得到这样的结果: stream程2是我所期望的,但stream程1在应用程序closures时抛出一个错误 – 我期望在这里终止。 编辑:主要的问题是,当退出应用程序使用stream程1,“将终止”永远不会被调用 – 因此,“myMP.stop()”永远不会被调用,玩家继续播放应用程序退出后。 如果您在应用程序处于活动状态时单击Home(stream程1)或双击(Flow 2),则行为会有明显差异。 为什么我会从同样的行为中得到两个不同的回应? 编辑:最重要的是,如果它永远不会“终止”,我该如何停止MediaPlayer的stream1? 编辑: 以下是一些复制问题的示例代码: AppDelegate.swift // // AppDelegate.swift // Jumbo Player // import UIKit //import MediaPlayer //doesn't matter where this is declared – here or in ViewController – same results //let myMP:MPMusicPlayerController = MPMusicPlayerController.systemMusicPlayer() @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { […]