小编nik*_*hil的帖子

我什么时候应该在 Flutter 中重写 debugFillProperties?

为什么要在 Flutter 的有状态 widget 中使用debugFillProperties ?我见过一些像Slider这样的 flutter 内置状态小部件使用这种方法。

我浏览了这里给出的 Flutter 文档。我仍然无法理解debugFillProperties的实际用法。何时或为何使用它?

我在我的示例代码中尝试过,仍然无法理解。我在 Flutter 中没有找到任何关于此方法的文档或相关信息。

  double? min;
  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);
    print("--------------Debug-------------");
    properties.add(IntProperty('min', min, defaultValue: 5, ifNull: "nulll"));
  }
Run Code Online (Sandbox Code Playgroud)

dart flutter

8
推荐指数
1
解决办法
1616
查看次数

音频持续时间在AVQueuePlayer中返回nan

当我尝试.wav使用AVQueuePlayer从服务器播放文件时,它返回的持续时间为nan.

我用这段代码来获取持续时间

audioPlayer.currentItem?.duration.seconds 
audioPlayer.currentItem?.asset.duration.seconds
Run Code Online (Sandbox Code Playgroud)

我确信.wav我使用的文件没有被破坏,因为它被Android应用程序使用,他们能够获得持续时间.

下面我使用的代码非常适合.mp3.但不是.wav

if let url = URL(string: urlString) {
            audioAsset = AVURLAsset.init(url: url)

            if let audioAsset = audioAsset {

                let keys = ["playable"]

                   audioAsset.loadValuesAsynchronously(forKeys: keys, completionHandler: {

                    let playableStatus = audioAsset.statusOfValue(forKey: keys[0], error: nil)
                    switch playableStatus {

                    case .unknown,  .loading,  .failed,  .cancelled:
                        return

                    case .loaded:

                        DispatchQueue.main.async {

                            let playerItem = AVPlayerItem.init(asset: audioAsset)
                            self.audioPlayer.insert(playerItem, after: nil)
                            self.audioPlayer.play()

                            })
                        }
                        break
                    }
                })
            }
        }
Run Code Online (Sandbox Code Playgroud)

wav ios avqueueplayer swift

5
推荐指数
0
解决办法
96
查看次数

在swift中从字符串到日期的转换返回nil

我在swift 3中将字符串转换为日期时遇到问题.这是我的代码,它在转换时返回一个nil值.

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE, dd MMM yyyy hh:mm:ss +zzzz"
dateFormatter.locale = Locale.init(identifier: "bg_BG")

let recdate = dateFormatter.date(from:"Fri, 10 Mar 2017 15:03:03 +0530")!;`
Run Code Online (Sandbox Code Playgroud)

nsdateformatter ios swift

3
推荐指数
1
解决办法
2565
查看次数

标签 统计

ios ×2

swift ×2

avqueueplayer ×1

dart ×1

flutter ×1

nsdateformatter ×1

wav ×1