Если бы я должен был сделать проверку покрытия кода, я думаю, что эти два были бы вершиной:
[Serializable]
[WebMethod]
Натан прав, говоря о необходимости реализации собственного пользовательского интерфейса для игрока, если вы хотите получать уведомления о кнопках. Однако вы можете получать уведомления от проигрывателя о состоянии воспроизведения.
из примера AddMusic, где self - это контроллер или модель, содержащая экземпляр MPMusicPlayerController:
- (void) registerForMediaPlayerNotifications {
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver: self
selector: @selector (handle_NowPlayingItemChanged:)
name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification
object: musicPlayer];
[notificationCenter addObserver: self
selector: @selector (handle_PlaybackStateChanged:)
name: MPMusicPlayerControllerPlaybackStateDidChangeNotification
object: musicPlayer];
/*
// This sample doesn't use libray change notifications; this code is here to show how
// it's done if you need it.
[notificationCenter addObserver: self
selector: @selector (handle_iPodLibraryChanged:)
name: MPMediaLibraryDidChangeNotification
object: musicPlayer];
[[MPMediaLibrary defaultMediaLibrary] beginGeneratingLibraryChangeNotifications];
*/
[musicPlayer beginGeneratingPlaybackNotifications];
}
Уведомления не генерируются, когда пользователь нажимает следующие / предыдущие кнопки (вы должны сообщить об этом) , поэтому единственный способ решить эту проблему без какого-либо несанкционированного сканирования по просмотрам - это реализовать собственное представление наложения видео:
MPMoviePlayerController* moviePlayer = [[MPMoviePlayerController alloc]
initWithContentURL:someUrl];
moviePlayer.movieControlMode = MPMovieControlModeHidden;
[moviePlayer play];
NSArray* windows = [[UIApplication sharedApplication] windows];
if ([windows count] > 1) {
UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
[moviePlayerWindow addSubview:yourCustomOverlayView];
}
Не идеально, но стандартные элементы управления довольно легко повторно реализовать.
Я не думаю, что у вас есть большой контроль над MPMoviePlayerController
. Это стандартный компонент, который может запускать и останавливать воспроизведение фильма и ничего больше.