iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
自我挑戰組

用 ODK 和 Access VBA 打造行動化資料收集流程系列 第 14

Day14: XLSForm設計教學:問題類型/資料類型(Question Types) Part 4

  • 分享至 

  • xImage
  •  

錄音小工具(Audio widgets)

使用設備的麥克風或連接的外部麥克風錄製音訊。預設情況下,是使用內建的麥克風錄音。
建議使用 Collect 內建的錄音軟體錄音,因為您可以自訂音訊品質,並在填寫其他問題時進行錄音。

  • 音頻檔案可能很大,因此如果要在表單中錄製音頻,請依照預期的錄音時間與品質需求,考慮進行音頻的品質設定。可以在透過草稿提交時,測試傳輸速度與檔案大小,以確保獲得預期檔案大小與錄音品質。 *
  • Android 裝置在使用過程中會發出許多聲音,這些聲音將包含在錄音中。建議在錄製之前關閉相機快門與通知等提醒聲音。 *

預設錄音/使用內建錄音機(Using the built-in audio recorder)

  • [type]欄位: 選擇audio
type name label
audio voice_recording 點選後進行錄製

https://ithelp.ithome.com.tw/upload/images/20240926/20007221rauEUdMJxN.jpg

https://ithelp.ithome.com.tw/upload/images/20240926/20007221iRo8qEtxMS.jpg

https://ithelp.ithome.com.tw/upload/images/20240926/20007221TT83GMbQpD.jpg

內建錄音機可以錄製音頻,而無需安裝外部應用程式。 它還可以在填寫其他問題的同時進行錄音,並且即使用戶切換到另一個應用程式或手機螢幕被鎖定,也可以繼續錄音。

https://ithelp.ithome.com.tw/upload/images/20240926/20007221agNLXkarFb.jpg

啟用內建錄音並開始錄音時,螢幕頂部會出現錄音控制欄。

  1. 該欄的左上角有一個圖標,表示目前正在錄製還是已暫停
  2. 目前錄音長度
  3. 暫停按鈕,僅適用於 Android 7.0 及更高版本。在較低的 Android 版本上,暫停按鈕是隱藏的。
  4. 停止按鈕

點擊暫停按鈕後,錄音將暫時暫停,按鈕圖示會變為麥克風。
當輕敲麥克風時,錄音將恢復。
錄音可以根據需要多次暫停和恢復。
點選停止按鈕後,錄音即結束,且無法再修改。

錄音狀態也會顯示在音訊問題文字下方。

  1. 時間表示目前錄音長度
  2. 圖表示隨時間的變化的錄音音量,該圖確認麥克風正在工作,並可以幫助使用者確保均勻、足夠的音量

其他問題可以作為內建錄音問題包含在同一螢幕上。
如上面的螢幕截圖所示,這使得在錄製時可同時輸入問卷內容。
為此,請將問題放入field list (欄位清單)中。

type name label hint appearance
begin_group SE field-list
audio recording_voice_inGroup 點選後開始錄音,可以於下個問題前,按下暫停,到下一題再繼續錄製。
select_one yes_no special_events 是否有特殊問題? columns-2
text what_happened 請詳述
image events_image 請拍照
end_group

在錄製期間,使用者無法離開目前問題畫面。但是,使用其他應用程式或鎖定裝置螢幕是安全的。
一旦停止錄製,控制欄就會消失。錄音可在問題文字下方播放。
若要替換錄製的音頻,請先刪除目前文件,然後重新錄製。

在極少數情況下,例如設備空間不足,記錄可能會記錄成功,但不會附加到表單中。如果發生這種情況,將顯示一個對話框,說明該文件可用,但需要手動存取。您可以在 Collect 目錄的 Recordings 資料夾中找到這些檔案。該資料夾永遠不會被清除,因此在檢索其檔案後請考慮自行清空它。

自訂聲音品質(Customizing audio quality)

可以使用quality(品質)參數自訂錄音品質。如果指定了品質,則表單錄音會始終使用內建錄音軟體,無論 Collect 的設定如何。如果未指定品質並且已停用外部應用程式錄製,則使用normal (正常)品質。

可用的品質值設定有:

設定值 副檔名 編碼 位元率 採樣率 檔案大小
normal .m4a AAC 64 kbps 32 kHz ~30 MB/小時
low .m4a AAC 24 kbps 32 kHz ~11 MB/小時
voice-only .amr AMR 12.2 kbps 8 kHz ~5 MB/小時

建議安靜的地方使用voice-only(僅語音)進行一對一採訪,否則可能會失去太多細節。low (低品質)聽起來很壓縮,但語音通常是可以理解的,即使多個人同時說話也是如此。normal (正常)與典型的播客設定類似,在大多數設備上聽起來都不錯。
最好使用您將在現場使用的設備(以及任何其他設備)來測試不同的品質,看看哪一種最適合。

在parameters(參數)欄位中,寫入quality=,然後指定類型。

type name label parameters
audio voice_only_audio Voice audio quality=voice-only
audio normal_audio Normal audio quality=normal

在表單輸入期間更改音訊品質(Changing audio quality during form entry)

如果單一問題可能需要不同的錄音品質,取決於使用者判斷與選擇,具體方法是依照relevance(關聯)在它們之間進行切換:

survey:

type name label parameters relevance
select_one yes_no is_quiet 您目前是否處於一個安靜的地方,一次只有一個人說話?
audio recording_voice_only 語音錄音品質 quality=voice-only ${is_quiet} = 'yes'
audio recording_normal 一般錄音品質 quality=normal ${is_quiet} = 'no'

choices:

list_name name label
yes_no yes Yes
yes_no no No

使用外部程式錄音(Recording with an external app)

  • [parameters]欄位: 加上quality=external

將品質設定為外部將導致 Collect 使用外部應用程式而不是內建錄音機來錄製音訊。您也可以將 Collect 設定為始終使用外部應用程式進行錄製並且不設定品質參數。 某些 Android 裝置提供預設的錄音應用程式。其他人則不需要,使用者需要安裝錄音應用程式。

任何回應 android.provider.MediaStore.Audio.Media.RECORD_SOUND_ACTION 的應用程式都應該相容。這邊推薦 Axet 錄音機。

啟動外部應用程式並接收從外部應用程式返回的音訊檔案。如果指定的外部應用程式不可用,則無法使用該小工具。

當外觀屬性以 ex: 開頭時,將顯示外部應用程式音訊小工具。外觀字串的其餘部分指定要啟動的應用程式。

type name label appearance Hint
audio ex_audio_widget 外部程式錄音 ex:com.example.collectanswersprovider(questionAudio='') audio type with ex:com.example.collectanswersprovider(questionAudio='') appearance (can use other external apps)

錄影小工具(Video widgets)

視訊檔案可能非常大,建議如果打算用於資料收集的每台裝配置視訊選項,需要根據收集資料時預期的網路流量條件向您的伺服器提交內容,以確保您可以傳送預期大小的檔案。

請注意,Central 預設的檔案上傳大小限制為 100 MB。

預設錄影小工具(Default video widget)

  • [type]欄位: 選擇 video

使用設備攝影機錄製影片。

type name Label hint
video blinking Please record a video of yourself blinking. Three times is probably sufficient.

https://ithelp.ithome.com.tw/upload/images/20240926/20007221xA4mG4kdXg.jpg

外部軟體錄影(External app video widget)

  • [type]欄位: 選擇 video
  • [appearance]欄位: 填寫ex:開頭字串

啟動外部應用程式並接收從外部應用程式返回的視訊檔案。如果指定的外部應用程式不可用,則無法使用該小工具。
當外觀屬性以 ex: 開頭時,將顯示外部應用程式影片小工具。外觀字串的其餘部分指定要啟動的應用程式。

type name label appearance hint
video ex_video_widget 外部程式錄影 ex:com.example.collectanswersprovider(questionVideo='') video type with ex:com.example.collectanswersprovider(questionVideo='') appearance (can use other external apps)

https://ithelp.ithome.com.tw/upload/images/20240926/20007221pWuT6KEo2u.jpg

檔案上傳小工具(File upload widget)

  • [type]欄位: 選擇 file

將任何檔案從裝置上傳到表單。

用戶可以上傳任何文件類型,其中包括潛在的惡意文件。除非您信任使用該表單的人員,否則不應包含此小工具。 即使如此,您在下載或開啟檔案之前也應該採取預防措施。 執行反惡意軟體掃描。 驗證該文件是您期望的類型(例如 .pdf 文件),而不是具有潛在危險的文件(例如 .exe 或 .ini)。

type name label hint
file ex_file_widget 檔案上傳小工具 file type

https://ithelp.ithome.com.tw/upload/images/20240926/200072218CCBn4ONz2.jpg

外部程式檔案小工具(External app file widget)

  • [type]欄位: 選擇 file
  • [appearance]欄位: 填寫ex:開頭字串

啟動外部應用程式並接收從外部應用程式傳回的任意檔案。如果指定的外部應用程式不可用,則無法使用該小工具。
當appearance屬性以 ex: 開頭時,將顯示外部應用程式檔案小工具。外觀字串的其餘部分指定要啟動的應用程式。
該小部件接受任何類型的文件。了解有關上述風險的更多資訊。您應該只指定您信任的外部應用程式。

type name label appearance hint
file ex_file_widget 外部檔案上傳小工具 ex:com.example.collectanswersprovider(questionFile='') file type with ex:com.example.collectanswersprovider(questionFile='') appearance (can use other external apps)

https://ithelp.ithome.com.tw/upload/images/20240926/20007221K5Z0geAUvW.jpg

條碼掃描小工具(Barcode widget)

使用裝置鏡頭掃描、解碼和擷取條碼的內容。 支援以下條碼格式:

  • UPC-A
  • UPC-E
  • EAN-8
  • EAN-13
  • Code 39
  • Code 93
  • Code 128
  • Codabar
  • ITF
  • RSS-14
  • RSS-Expanded
  • QR Code
  • Data Matrix
  • Aztec (beta)
  • PDF 417 (beta)
  • MaxiCode

預設條碼小工具(Default barcode widget)

  • [type]欄位: 選擇 barcode

在光線較差的環境下掃描條碼時,可以使用閃光燈作為光源。

type name label
barcode barcode_example 掃描條碼.

https://ithelp.ithome.com.tw/upload/images/20240926/20007221ZMneu1uEIw.jpg

前置相機條碼小工具(Self portrait (selfie) barcode widget)

  • [type]欄位: 選擇 barcode
  • [appearance]欄位: 選擇 front

在某些情況下,前置鏡頭可能效果更好。在這種情況下不能使用閃光燈。

type name label appearance
barcode barcode_example 前置相機掃描條碼 front

https://ithelp.ithome.com.tw/upload/images/20240926/20007221cdF5b3yVMo.jpg

隱藏掃描值(Hiding the scanned value)

  • [type]欄位: 選擇 barcode
  • [appearance]欄位: 選擇 hidden- answer
    預設情況下,掃描的值顯示在小工具按鈕下方。在某些情況下,原始掃描值對顯示沒有幫助。例如,它可能是 base64 編碼的、非常長,或者可能表示值列表。在這種情況下,您可以使用hidden-answer(隱藏答案)外觀。建議將此問題放在field-list(欄位清單)中,以提供有關掃描值的一些有用回饋。
type name label appearance Calculation
begin_group gr field-list
barcode barcode 請掃描 hidden- answer
calculate first_name selected-at(base64-decode(${barcode}), 0)
calculate last_name selected-at(base64-decode(${barcode}), 1)
note barcode_note First name: ${first_name} Last name: ${last_name}
end_group gr
https://ithelp.ithome.com.tw/upload/images/20240926/20007221222KTO6nEM.jpg

https://ithelp.ithome.com.tw/upload/images/20240926/20007221Cme8vPKcgD.jpg

這邊要注意「selected-at」是以「一個空格」來拆分字串,所以如果內容有空格時,就不太適合以此方式處理,但如很明確的以空格區隔開,且資料內容沒有空格,那就沒什麼問題。

關於內容Base64編碼的部分,可參考我之前撰寫的文章「Access VBA 的眉眉角角Day20: Base64編碼與解碼」:
https://ithelp.ithome.com.tw/articles/10185874


上一篇
Day13: XLSForm設計教學:問題類型/資料類型(Question Types) Part 3
下一篇
Day15: XLSForm設計教學:問題類型/資料類型(Question Types) Part 5
系列文
用 ODK 和 Access VBA 打造行動化資料收集流程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言