Edited at

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

More than 3 years have passed since last update.

環境

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