无法推断通用参数“标签”

时间:2019-12-23 16:50:00

标签: swiftui

有人可以告诉我为什么在第9行出现错误,无法推断出通用参数'Label'

struct PlayerControlsView : View {
  @State var playerPaused = true
  @State var seekPos = 0.0
  let player: AVPlayer
  var body: some View {
    HStack {
      Button(action: {
        self.playerPaused.toggle()
        if self.playerPaused {
          self.player.pause()
        }
        else {
          self.player.play()
        }
      }) {
        Image(systemName: playerPaused ? "play" : "pause")
          .padding(.leading, CGFloat(20))
          .padding(.trailing, CGFloat(20))
      }
      Slider(value: $seekPos, from: 0, through: 1, onEditingChanged: { _ in
        guard let item = self.player.currentItem else {
          return
        }

        let targetTime = self.seekPos * item.duration.seconds
        self.player.seek(to: CMTime(seconds: targetTime, preferredTimescale: 600))
      })
        .padding(.trailing, CGFloat(20))
    }
  }
}

当然还有解决方法。

1 个答案:

答案 0 :(得分:0)

您的Slider初始化不正确。没有包含from:through:的版本。不过in: [0...1]是默认设置,因此您还是不需要它。

  Slider(value: $seekPos, onEditingChanged: { _ in

SwiftUI错误消息通常是无用的。发现错误的方法是继续注释掉所有内容,直到编译为止,然后再将它们重新添加。

但是,您在此处执行的操作无法正常工作。您不能将AVPlayer放在View内。 View是一个结构,它们始终被创建,复制和销毁。参见How to stream remote audio in iOS 13? (SwiftUI)