1. AntEgg

    Posted

    AntEgg
Changes in title
+【Swift】【Xcode6】【初心者】文字を音声にして読んでくれる簡単なアプリのソースコード
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,83 @@
+環境
+OS X Yosemite10.10
+Xcode6.1.1
+
+#アプリ説明
+・テキストに文字を入力すると、その文字を読み上げてくれるアプリ
+・テキストを消すための☓印がついている
+・テキスト入力の後returnキーを押すか、ボタンを押すとキーボードを非表示にできる
+
+![スクリーンショット 2015-01-22 12.58.30 1.png](https://qiita-image-store.s3.amazonaws.com/0/63942/bb541d64-d6f2-96c6-06af-4b95e61ecfb9.png)
+
+実際の動きはこんな感じ。
+http://youtu.be/1j28rl-YThg
+
+#ソースコード
+```swift
+//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の使い方に慣れてきてプログラミングが楽しくなってきました〜。
+
+
+
+