ios - AVPlayer resume capability -


i using avplayer in table view.i want start video playing stop video playing when scroll table view.tell me possible ways it?

- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath{ static nsstring *tableidentifier = @"tableidentifier"; customtablecell *cell = [self.videotableview dequeuereusablecellwithidentifier:tableidentifier]; if (cell == nil) {     cell = [[[nsbundle mainbundle]loadnibnamed:@"videocell" owner:self options:nil]objectatindex:0]; } dispatch_queue_t queue = dispatch_get_global_queue(dispatch_queue_priority_high, 0ul); dispatch_async(queue, ^{     avasset *avassert = [avasset assetwithurl:[nsurl urlwithstring:@"url"]];     cell.playeritem =[[avplayeritem alloc]initwithasset:avassert];     dispatch_sync(dispatch_get_main_queue(), ^{         if (!cell.avplayer) {             cell.avplayer = [avplayer playerwithplayeritem:cell.playeritem];         }else{             [cell.avplayer replacecurrentitemwithplayeritem:cell.playeritem];         }         if (!cell.avplayerlayer) {             cell.avplayerlayer = [avplayerlayer playerlayerwithplayer:cell.avplayer];             cell.avplayerlayer.frame = cell.videoplayerview.layer.bounds;             cell.avplayerlayer.videogravity = avlayervideogravityresize;             [cell.videoplayerview.layer addsublayer: cell.avplayerlayer];             if (indexpath.row == 0) {                 cell.avplayer.muted = no;                 [cell.avplayer play];             }         }     }); }); return cell; 

}

here's how apple did in sample app (i differently):

/* when app goes background, save media url , time values  application preferences. */ - (void)applicationdidenterbackground:(uiapplication*)application {     if (self.playbackviewcontroller)     {         nsuserdefaults* defaults = [nsuserdefaults standarduserdefaults];         nsurl* url = [self.playbackviewcontroller url];          if (url)         {             nstimeinterval time = cmtimegetseconds([[self.playbackviewcontroller player] currenttime]);              [defaults seturl:url forkey:avplayerdemocontenturluserdefaultskey];             [defaults setdouble:time forkey:avplayerdemocontenttimeuserdefaultskey];         }         else         {             [defaults removeobjectforkey:avplayerdemocontenturluserdefaultskey];             [defaults removeobjectforkey:avplayerdemocontenttimeuserdefaultskey];         }          [defaults synchronize];     } } 

in either (or both) appdidfinishlaunching or appdidenterforeground methods:

nsuserdefaults* defaults = [nsuserdefaults standarduserdefaults];      /* restore saved media time value defaults system. */     [[self.playbackviewcontroller player] seektotime:cmtimemakewithseconds([defaults doubleforkey:avplayerdemocontenttimeuserdefaultskey], nsec_per_sec)];  }  return yes; } 

Comments