การบันทึกเสียง
บันทึกข้อมูลจากไมโครโฟนลงในไฟล์
การบันทึกเสียง เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
การบันทึกด้วย AVAudioRecorder
AVAudioRecorder บันทึกเสียงจากไมโครโฟนลงในไฟล์โดยตั้งค่าเพียงเล็กน้อย เหมาะสำหรับบันทึกเสียงเตือนความจำและเครื่องบันทึกเสียงแบบง่าย
import AVFoundationสิทธิ์เข้าถึงไมโครโฟน
การบันทึกเสียงต้องได้รับสิทธิ์จากผู้ใช้ เพิ่ม NSMicrophoneUsageDescription ลงใน Info.plist และขอสิทธิ์เข้าถึงก่อนเริ่มบันทึก
AVAudioApplication.requestRecordPermission { granted in
if granted { /* start recording */ }
}การกำหนดค่าเซสชันเสียง
ตั้งหมวดหมู่ของเซสชันเป็น .record หรือ .playAndRecord แล้วเปิดใช้งาน เพื่อให้ระบบส่งสัญญาณเสียงจากไมโครโฟนเข้าสู่แอปของคุณ
let session = AVAudioSession.sharedInstance()
try session.setCategory(.playAndRecord)
try session.setActive(true)การเลือก URL ของไฟล์
การบันทึกเสียงจะถูกเขียนลงในไฟล์ สร้าง URL ในไดเรกทอรีเอกสารโดยใช้นามสกุลที่เหมาะสม เช่น .m4a
let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let url = dir.appendingPathComponent("memo.m4a")การตั้งค่าเครื่องบันทึก
การตั้งค่าจะกำหนดรูปแบบ อัตราการสุ่มตัวอย่าง จำนวนช่องสัญญาณ และคุณภาพผ่านพจนานุกรมคีย์ของ AVAudioRecorder
let settings: [String: Any] = [
AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
AVSampleRateKey: 44100,
AVNumberOfChannelsKey: 1,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]การสร้างเครื่องบันทึก
เริ่มต้น AVAudioRecorder ด้วย URL และการตั้งค่า จากนั้นเรียกใช้ prepareToRecord() เพื่อจัดสรรทรัพยากร
let recorder = try AVAudioRecorder(url: url, settings: settings)
recorder.prepareToRecord()การเริ่มและหยุด
เรียกใช้ record() เพื่อเริ่มบันทึก และ stop() เพื่อจบการบันทึก การหยุดจะทำให้ไฟล์เสียงเสร็จสมบูรณ์และปิดไฟล์
recorder.record()
// later
recorder.stop()การบันทึกตามเวลาและการหยุดชั่วคราว
คุณสามารถบันทึกเป็นระยะเวลาที่กำหนดด้วย record(forDuration:) และใช้ pause() / record() เพื่อบันทึกต่อในไฟล์เดิม
recorder.record(forDuration: 30) // stop after 30sการวัดระดับเสียง
เปิดใช้ isMeteringEnabled จากนั้นเรียก updateMeters() และอ่านค่า averagePower(forChannel:) เพื่อขับเคลื่อนมาตรวัดระดับเสียงแบบเรียลไทม์
recorder.isMeteringEnabled = true
recorder.updateMeters()
let power = recorder.averagePower(forChannel: 0) // in dBตัวแทน
ทำให้สอดคล้องกับ AVAudioRecorderDelegate เพื่อรับทราบว่าการบันทึกเสร็จสมบูรณ์หรือเกิดข้อผิดพลาดในการเข้ารหัส
func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder,
successfully flag: Bool) {
print("finished: \(flag)")
}การเล่นผลลัพธ์
หลังจากบันทึกแล้ว ให้เล่นไฟล์ด้วย AVAudioPlayer โดยชี้ไปยัง URL เดียวกัน ซึ่งเป็นวิธีรวดเร็วในการตรวจสอบการบันทึก
let player = try AVAudioPlayer(contentsOf: url)
player.play()ตรวจสอบความเข้าใจอย่างรวดเร็ว: การบันทึก
ทดสอบความเข้าใจเกี่ยวกับการบันทึกเสียงของคุณ
ทบทวน: การบันทึกเสียง
AVAudioRecorder บันทึกเสียงจากไมโครโฟนลงในไฟล์ หลังจากคุณขอสิทธิ์และเปิดใช้งาน AVAudioSession สำหรับการบันทึกแล้ว ระบุ URL และพจนานุกรมการตั้งค่า (รูปแบบ อัตราการสุ่มตัวอย่าง จำนวนช่องสัญญาณ และคุณภาพ) เรียกใช้ prepareToRecord() แล้วจึงใช้ record()/stop()
เปิดใช้การวัดระดับเสียงเพื่อแสดงระดับแบบเรียลไทม์ ใช้ตัวแทนเพื่อตรวจจับการเสร็จสิ้น และเล่นกลับด้วย AVAudioPlayer เพื่อตรวจสอบ
เรียนรู้ Swift ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 122
- บทเรียน
- 409
คำถามที่พบบ่อย
บทเรียน “การบันทึกเสียง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การบันทึกเสียง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การบันทึกเสียง”
บันทึกข้อมูลจากไมโครโฟนลงในไฟล์ คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การบันทึกเสียง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม
ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ