क्या किसी के पास AVAudioPlayer पर प्लेबैक प्रगति पट्टी जोड़ने के लिए एक ट्यूटोरियल का लिंक होगा?avaudioplayer प्लेबैक प्रगति
मैं कोई लाभ नहीं हुआ
क्या किसी के पास AVAudioPlayer पर प्लेबैक प्रगति पट्टी जोड़ने के लिए एक ट्यूटोरियल का लिंक होगा?avaudioplayer प्लेबैक प्रगति
मैं कोई लाभ नहीं हुआ
लिए इस साइट पर और गूगल पर बड़े पैमाने पर खोज की है मैं यह पता लगा है और यह बहुत बुरा नहीं था।
बस एक टाइमर में अपडेट कर
playbackTimer=[NSTimer scheduledTimerWithTimeInterval:0.5
target:self
selector:@selector(myMethod:)
userInfo:nil
repeats:YES];
}
-(void)myMethod:(NSTimer*)timer {
float total=audioPlayer.duration;
float f=audioPlayer.currentTime/total;
NSString *str = [NSString stringWithFormat:@"%f", f];
playbackProgress.progress=f;
NSLog(str);
}
एक आवधिक समय पर्यवेक्षक जोड़ें और स्लाइडर अद्यतन - स्विफ्ट में यह इस तरह होगा -
func addPlayBackSlider()
{
playbackSlider = UISlider(frame:CGRect(x:10, y:300, width:300, height:20))
playbackSlider?.minimumValue = 0
let duration : CMTime = playerItem.asset.duration
let seconds : Float64 = CMTimeGetSeconds(duration)
playbackSlider?.maximumValue = Float(seconds)
playbackSlider?.isContinuous = true
//If you want to manually set progressBar
playbackSlider?.addTarget(self, action: #selector(AddAudioController.playbackSliderValueChanged(_:)), for: .valueChanged)
//Here is the Observer
player!.addPeriodicTimeObserver(forInterval: CMTimeMakeWithSeconds(1, 1), queue: DispatchQueue.main) { (CMTime) -> Void in
if self.player!.currentItem?.status == .readyToPlay {
let time : Float64 = CMTimeGetSeconds(self.player!.currentTime());
self.playbackSlider!.value = Float (time);
}
}
}
//If you want to manually set progressBar
func playbackSliderValueChanged(_ playbackSlider:UISlider)
{
let seconds : Int64 = Int64(playbackSlider.value)
targetTime = CMTimeMake(seconds, 1)
print(targetTime)
player!.seek(to: targetTime)
if player!.rate == 0
{
player?.play()
playButton!.setTitle("Pause", for: UIControlState.normal)
}
}
आशा इस मदद करता है :) – Shawon91
एक जोड़ा जा रहा है आवधिक समय पर्यवेक्षक दुर्भाग्य से केवल AVPlayer के लिए काम करता है, AVAudioPlayer नहीं। –