技術

Swiftで簡単・最速「録音&再生」アプリ作成

どうも、フリーランスのITエンジニア兼ブロガー兼投資家のKerubitoです。

Swiftで「録音&再生」アプリを作ってみました。

環境は以下の通りです。

・Swiftバージョン:5
・Xcodeバージョン:11.4
・使用デバイス:iPhone8(13.2.2)

必要最低限&最速で「Swiftで録音機能」を試したいという場合に役立つと思います。

プロジェクトを作成するところから動作確認まで小一時間ぐらいですので、エラーハンドリングなどは何もしてません。

本当にただ繋げただけ。

あと、SwiftUIで画面作ってますが、そこもかなり適当なのであしからず。

プロジェクトの作成

Xcodeを立ち上げ、「Create a new Xcode project」をクリックします。

xcode1

次はプロジェクトのタイプを選択します。

「Single View Application」をクリックします。

xcode2

あとはアプリやデベロッパーの名称、言語、対象デバイスを設定します。

xcode3

AudioRecorderクラスを用意

録音と再生を担うクラス、メインの処理をまずは用意します。

それぞれメソッド単位で説明していきます。

まずはrecord()、録音を担当。

セッション、設定といった前準備から、実際の録音までをここでやります。

下から2行目にてgetURL()を読んでいますが、本体はこちら。

ドキュメント直下に「sound.m4a」として録音データをファイルにて保存しています。

m4aはAAC形式の拡張子です。

録音の停止は以下のメソッドです。

ファイルからバイナリにして戻しているんですが、ここでは余計な処理でしたので無視してください。

録音した音声を再生します。

audioPlayer.volume = 10.0とボリュームを設定しているのですが、なぜかこれがないと音が小さいので入れています。

ただ、あまり調べずに適当にやっているので、ちゃんと実装するときはこのまま使わないほうがいいです。

再生停止。

上のもろもろをまとめたAudioRecorderクラスです。

画面側の実装はSwiftUI

今度は録音機能を呼び出す画面側です。
こっちは本当に適当。

こんな感じのものが動きます。

注意点として、新規でアプリを作る場合は「マイク」の許可を承諾する設定をplistに追加する必要があります。

NSMicrophoneUsageDescriptionです。

上の環境でビルドは通して、それぞれ動くぐらいの確認はしましたので、録音機能を試すぐらいはできるかと。

ソースはGitHubに上げています。

楽しい開発ライフを!

-技術

© 2021 Kerubitoのブログ