iphone - AVPlayer set initial playback time iOS -
added kvo avplayer when play video queueplayer avplayer
[self.queueplayer addobserver:self forkeypath:@"status" options:0 context:null]; observer method:
-(void)observevalueforkeypath:(nsstring *)keypath ofobject:(id)object change:(nsdictionary *)change context:(void *)context { if ([keypath isequaltostring:@"status"]) { if (self.queueplayer.status == avplayerstatusreadytoplay) { nsinteger step = (nsinteger)(starttimeforvideo/0.04); [self.queueplayer.currentitem stepbycount:step]; //cmtime seektime = cmtimemake(starttimeforvideo*timescale,timescale); //if (cmtime_is_valid(seektime)) // [self.queueplayer seektotime:seektime tolerancebefore:kcmtimepositiveinfinity toleranceafter:kcmtimepositiveinfinity]; //else // nslog(@"in valid time"); [self.queueplayer play]; } else if (self.queueplayer.status == avplayerstatusfailed) { /* error encountered */ } } here starttimeforvideo intial playback time video
seektotime not working neither stepbycount
edit : values of object used in methods correct , though no luck
changes in kvo method queueplayer avplayer:
if (self.queueplayer.status == avplayerstatusreadytoplay) { //firstly make cmtime here starttimeforvideo float64 value in seconds //get video's time scale cmtime has it. int32_t timescale = self.queueplayer.currentitem.asset.duration.timescale cmtime seektime=cmtimemakewithseconds(starttimeforvideo, timescale); //use cmtime seektotime. [self.queueplayer seektotime:seektime tolerancebefore:kcmtimezero toleranceafter:kcmtimezero]; } ............ edit : here kcmtimezero in both tolerance field exact location in seektotime: tolerancebefore: toleranceafter: method
Comments
Post a Comment