Có ai có liên kết đến hướng dẫn để thêm thanh tiến trình phát lại vào AVAudioPlayer không?Tiến trình phát lại avaudioplayer
Tôi đã tìm kiếm rộng rãi trên trang web này và trên google vô ích
Có ai có liên kết đến hướng dẫn để thêm thanh tiến trình phát lại vào AVAudioPlayer không?Tiến trình phát lại avaudioplayer
Tôi đã tìm kiếm rộng rãi trên trang web này và trên google vô ích
Tôi đã tìm ra và nó không quá tệ.
Chỉ cần cập nhật nó trong một giờ
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);
}
Thêm một thời gian quan sát định kỳ và cập nhật các thanh trượt - trong Swift nó sẽ là như thế này -
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)
}
}
Hope this helps :) – Shawon91
Thêm một người quan sát thời gian định kỳ không may chỉ hoạt động cho AVPlayer chứ không phải AVAudioPlayer. –