iT邦幫忙

2024 iThome 鐵人賽

DAY 18
0

錄音錄完了,檔案呢?

「如何將錄音內容存成獨立檔案?」這樣問AI,結果得到的答案還真詳盡。

首先,它告訴我網頁系統無法直接將手伸到電腦的檔案系統,那該怎麼辦?別擔心,它還立刻幫我想到替代方案。

「要用檔案下載機制,將檔案存檔後用個本機端的URL將檔案下載下來。」

  void downloadData(html.Blob? blob) {
    // Create a Blob from the data
    // final blob = html.Blob([data]);

    if (blob == null) {
      print('No data to download');
      return;
    }

    // Create a URL for the Blob
    final url = html.Url.createObjectUrl(blob);

    // Get the current date and time
    final now = DateTime.now();

    // Format the date and time as YYYYMMDDHHMMSS
    final formattedDateTime = '${now.year}${now.month.toString().padLeft(2, '0')}${now.day.toString().padLeft(2, '0')}${now.hour.toString().padLeft(2, '0')}${now.minute.toString().padLeft(2, '0')}${now.second.toString().padLeft(2, '0')}';

    //Create a download link
    final anchor = html.AnchorElement()
      ..href = url
      ..download = 'recording_$formattedDateTime.wav'
      ..click();

    // Revoke the URL after the download is complete
    // html.window.setTimeout(() => html.Url.revokeObjectUrl(url), 0);
    Future.delayed(Duration.zero, () => html.Url.revokeObjectUrl(url));

  }

對了,因為我要求用日期當檔名,所以中間會看到一段取時間的程式碼。

存檔成功!萬歲.....真正的大魔王難題開始了!


上一篇
FlutterWeb上的多執行序長得好奇怪喔
下一篇
存起來的「生肉」錄音檔無法播放
系列文
用AI寫程式也是要點本事的30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言