Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
15
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@AntEgg

【Swift】【Xcode6】【初心者】文字を音声にして読んでくれる簡単なアプリのソースコード

環境
OS X Yosemite10.10
Xcode6.1.1

アプリ説明

・テキストに文字を入力すると、その文字を読み上げてくれるアプリ
・テキストを消すための☓印がついている
・テキスト入力の後returnキーを押すか、ボタンを押すとキーボードを非表示にできる

スクリーンショット 2015-01-22 13.20.33.png

実際の動きはこんな感じ。
http://youtu.be/1j28rl-YThg

ソースコード

//1.ボタン、テキストフィールドを設置→viewcontroller.swiftに接続



import UIKit
import AVFoundation //2.フレームワークをインポート
                                        //5.
class ViewController: UIViewController, UITextFieldDelegate {


    @IBOutlet weak var textArea: UITextField!   //1.

    var speak:AVSpeechSynthesizer = AVSpeechSynthesizer()   //3.変数speakを作る

    override func viewDidLoad() {
        super.viewDidLoad()
        //5.キーボードを表示させる
        textArea.delegate = self
        textArea.clearButtonMode = UITextFieldViewMode.Always
        textArea.keyboardType = UIKeyboardType.Default
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

    }


    @IBAction func speakBtn(sender: UIButton) { //1.
        //4.ボタンが押されたら音声を読み上げ
        let content = AVSpeechUtterance(string: self.textArea.text)
        content.voice = AVSpeechSynthesisVoice(language: "ja-JP")
        self.speak.speakUtterance(content)
        textFieldShouldReturn(textArea) //6.


    }

    //6.returnキーを押したらキーボードが消えるようにする
    func textFieldShouldReturn(textField: UITextField) -> Bool {
        textArea.resignFirstResponder()
        return true
    }

}

書き加えた順番に番号をふってあります。

作る過程のエラー

iOS8.1ではコードが正しくても音が出ない 

Xcodeをインストールした状態だと、渡しの場合iOS SDK 8.01しか入っておらず、それでは音声機能が使えなかった。
http://stackoverflow.com/questions/24472766/avspeechutterance-swift-initializing-with-a-phrase

シミュレーターをiOS7.0で動かす 

機能を使えるのはiOS7.0とわかったが、シミュレーターをiOSにするのも一調べ。
http://wayohoo.com/mac/apps/developer-tools/if-there-is-no-ios-simulator-in-xcode-6-1-workaround.html

シミュレーターのキーボードが表示されない

音はなるようになったけれど、キーボードが出てこず、ここでもハマった。
http://yutaihara.com/archives/147

ちょっとずつですが、Swiftの書き方やXcodeの使い方に慣れてきてプログラミングが楽しくなってきました〜。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
15
Help us understand the problem. What are the problem?