Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. @interface ViewController ()
  2.  
  3. @property (strong, nonatomic) AVPlayer *player;
  4. @property (assign, nonatomic) NSInteger index;
  5.  
  6. @end
  7.  
  8. @implementation ViewController
  9.  
  10. - (void)viewDidLoad {
  11. [super viewDidLoad];
  12. }
  13.  
  14. - (IBAction)buttonPressed:(UIButton *)sender {
  15. [self.player.currentItem removeObserver:self forKeyPath:@"status"];
  16. NSLog(@"removed %@", self.player.currentItem);
  17.  
  18. AVPlayerItem *item = [[AVPlayerItem alloc] initWithURL:[NSURL URLWithString:self.urls[self.index]]];
  19.  
  20. [item addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:nil];
  21. NSLog(@"added %@", item);
  22.  
  23. [self.player replaceCurrentItemWithPlayerItem:item];
  24.  
  25. }
  26.  
  27. - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
  28. if ([keyPath isEqualToString:@"status"]) {
  29. if ([object isMemberOfClass:[AVPlayerItem class]]) {
  30. AVPlayerItem *playerItem = (AVPlayerItem *)object;
  31. switch (playerItem.status) {
  32. case AVPlayerItemStatusFailed:
  33. NSLog(@"failed");
  34. break;
  35. case AVPlayerItemStatusReadyToPlay:
  36. NSLog(@"ready");
  37. break;
  38. case AVPlayerItemStatusUnknown:
  39. NSLog(@"unknown");
  40. break;
  41. }
  42. }
  43. }
  44. }
  45.  
  46. - (AVPlayer *)player {
  47. if (!_player) {
  48. _player = [[AVPlayer alloc] init];
  49. }
  50. return _player;
  51. }
  52.  
  53. - (NSArray *)urls {
  54. return @[@"https://of92d29bn.qnssl.com/record1.m4a", @"https://of92d29bn.qnssl.com/record2.m4a"];
  55. }
  56.  
  57. - (NSInteger)index {
  58. if (_index == 0) {
  59. _index = 1;
  60. } else {
  61. _index = 0;
  62. }
  63. return _index;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement