Ios 访问当前线程上的AVAudioPlayer

Ios 访问当前线程上的AVAudioPlayer,ios,objective-c,multithreading,avaudioplayer,Ios,Objective C,Multithreading,Avaudioplayer,我正在使用一系列与主线程并发的AVAudioPlayers,使用dispatch\u async。在播放每一首之前,我必须查询它是否正在使用其isplay方法播放 我通常不熟悉多线程,因此如何在AVAudioPlayer当前正在处理的线程上调用isplay方法?您可以直接在主线程上访问属性playing,因为操作是读取的,所以我认为它是安全的:) 但您不能使用它来判断播放是否已完成,如文档所述:重要提示:不要轮询此属性以确定播放何时完成,而是实现指定的委托方法 您应该使用delegate并实现方

我正在使用一系列与主线程并发的
AVAudioPlayer
s,使用
dispatch\u async
。在播放每一首之前,我必须查询它是否正在使用其
isplay
方法播放


我通常不熟悉
多线程
,因此如何在
AVAudioPlayer
当前正在处理的线程上调用
isplay
方法?

您可以直接在主线程上访问属性
playing
,因为操作是读取的,所以我认为它是安全的:)

但您不能使用它来判断播放是否已完成,如文档所述:重要提示:不要轮询此属性以确定播放何时完成,而是实现指定的委托方法

您应该使用delegate并实现方法
-(void)audioplayerdfinishplaying:(AVAudioPlayer*)player successfully:(BOOL)flag
,如果调用该方法,则表示播放器停止