tôi một chút bối rối bởi lần xuất hiện kỳ lạ này:AVAudioPlayer số vòng lặp chỉ có hiệu lực sau khi được chơi qua một lần
Tôi có một UIButton, mà một khi khai thác hoặc thiết lập một vòng lặp cho một máy nghe nhạc, hoặc reset nó đến 0 (không có vòng lặp). Dưới đây là phương pháp -
-(void)changeLoopValueForPlay:(int)tag toValue:(bool)value{
AVAudioPlayer *av = [self.playerArray objectAtIndex:tag];
if(value){
[av setNumberOfLoops:100];
[av prepareToPlay];
}
else{
[av setNumberOfLoops:0];
}
}
Bây giờ đối với một số lý do, vòng lặp sẽ chỉ có hiệu lực sau khi người chơi chơi thông qua các âm thanh một lần, có nghĩa là giá trị vòng lặp không mất ảnh hưởng ngay lập tức, nhưng "numberOfLoops" giá trị của người chơi trên thực tế được đặt thành 100 khi tôi kiểm tra giá trị của nó trước khi chơi. Tôi giả định này có một cái gì đó để làm với khởi tạo hoặc tải của người chơi, nhưng tôi không khởi tạo lại nó giữa hai vở kịch (một mà không có vòng lặp, khác với). Bất kỳ ý tưởng tại sao điều này đang xảy ra? Nếu bạn muốn xem bất kỳ mã nào khác, vui lòng cho tôi biết.