0Pricing
Swift Academy · درس

تسجيل الصوت

التقط إدخال الميكروفون إلى ملف.

تسجيل الصوت درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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 للتحقق منه.

الأسئلة الشائعة

هل درس «تسجيل الصوت» مجاني؟

نعم — نص درس «تسجيل الصوت» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «تسجيل الصوت»؟

التقط إدخال الميكروفون إلى ملف. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «تسجيل الصوت»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تشغيل الوسائط باستخدام AVPlayer
  2. تسجيل الصوت
  3. ‏AVAsset والتركيب
  4. تضمين المشغلات في SwiftUI
← العودة إلى Swift Academy