我正在使用AVFoundation框架在swift中编写一个简单的播放器.除了我的播放器一遍又一遍地播放同一首歌之外,一切似乎都在起作用.我的播放列表中只有一首歌,所以这很有道理.我要做的是检查audioPlayerDidFinishPlaying标志,以确保它已完成播放,然后我会让它停止.我不确定如何实现调用以获取此处的标志是我的代码.
mp3Player?.play()
**if (mp3Player?.audioPlayerDidFinishPlaying:successfully) {**
mp3Player?.stop()
}
Run Code Online (Sandbox Code Playgroud)
在目标c中获取标志的正确方法是:
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
NSLog(@"audioPlayerDidFinishPlaying");
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释如何在SWIFT中实现相同的功能吗?这是我在SWIFT的第一个项目.我尝试在SWIFT中阅读有关void函数的内容,但没有运气.
我得到的错误是无法将'AVAudioPlayer.Type'类型的值转换为预期的参数类型'AVAudioPlayer'
我试图在Windows手机中播放声音后实现1200毫秒的延迟,但延迟不起作用.
我使用以下代码:
bleep.Play(); // play bleep
System.Threading.Tasks.Task.Delay(1100).Wait();
this.Frame.Navigate(typeof(MainPage.ItemPage));
Run Code Online (Sandbox Code Playgroud)
我被告知不要使用System.Threading.
await函数需要异步,并且在尝试实现时会让我感到头痛.
还有什么想法我还能用吗?