(第3回)英語文字起こしアプリ〜IT業界2年目 ネイティブアプリに挑戦〜

(第3回)英語文字起こしアプリ〜IT業界2年目 ネイティブアプリに挑戦〜

目次

はじめに
実機で録音・再生が上手くできない
マイクへのアクセス許可
動作確認(実機)
自作アプリで内部に作成したファイルを取得
次回予告

はじめに

前回記事では、録音した音声の再生機能を実装しシミュレータで動作させるところまで行いました。
そして今回記事の目的は、文字起こしの実装としておりました。
が、少し予定を変更して文字起こし機能は次々回に実装いたします。
では今回、次回は何を行うのかと言いますと第1回、第2回で実装した機能の動作確認になります。
実機で確認したところ、動作がうまくいっていない箇所があったので、修正方法含めてご紹介します。

実機で録音・再生が上手くできない

見出しの通りですが、前回シミュレータで動作させるところまで行っておりましたが
いざ、実機で動作すると上手く音が再生されませんでした。
それどころか録音を行おうとするとアプリが落ちてしまいました。

それで原因を調査したところ、録音についてはマイクへのアクセス確認を行っていない為でした。
(iPhoneユーザならインストールしたアプリの初回起動時によく見る確認ダイアログですね)

iPhoneではセキュリティのため、デバイスのリソースにアクセスする際にユーザに確認する必要があります。
録音もマイクを使用するために一度ユーザに確認する必要があります。
といってもこの機能の実装自体はそれほど難しくはありません。

マイクへのアクセス許可

まずXcodeの左側のファイル一覧からInfo.plistを開き、新規項目を追加します。
(どこかの行を選択すると現れる「+」マークをクリックすることで新規行が追加されます。)
新規行の「Key」に「Privacy – Microphone Usage Description」を入力し、「Value」にユーザにマイクを使用する目的を入力します。
「Value」の項目が先ほどのダイアログの文章として表示されます。

これで録音機能は実機で動作します。

動作確認(実機)

今回は忘れず実機で動作確認をいたします。
実機テストを行う端末を開発機に繋ぎ、デバックしてみます。
まずは録音を実行してみます。

見た目は問題なく動作しております。
では次に再生を行ってみます。
再生を行った結果、こちら音声が再生されておりませんでした。
(今回はプライバシー保護の観点から音声は公開しておりません)
録音が出来ていないのか、再生が出来ていないのか分からないので
録音時に作成されるファイルを取り出して、開発機で再生してみます。

自作アプリで内部に作成したファイル を取得

デバックした端末をアプリに接続した状態でXcodeのメニューの「Window」->「Devices ans Simulators」をクリックします。


そうすると接続している端末が表示されるので、その中から該当のアプリを選択して「歯車アイコン」->「Download Container…」をクリックし、保存先を選べるので保存を行います。


指定した保存先に「.xcappdata」という拡張子のファイルが生成されるので「右クリック」->「パッケージの内容を表示」でアプリのフォルダ構造を確認出来ます。
後は該当の場所に作成した録音ファイルを取得します。

録音ファイルを取得して開発機で再生してみると録音が流れるかと思います。
ということは原因は再生機能にあるということが分かりました。

次回予告

再生できない原因は再生機能にあることが判明したので、次回さらに詳細な原因を調査していきます。
そのため冒頭でもお伝えしましたが、文字起こしは次々回になります。