14
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-01-22

環境
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の使い方に慣れてきてプログラミングが楽しくなってきました〜。

14
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?