質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

1回答

1936閲覧

Swift_xcodeでif文を使用しButtonの押す回数に応じて、文章の表示と音声ファイルが再生されるようにしたい。

sichibusade

総合スコア7

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2017/10/03 14:03

編集2017/10/04 12:38

###前提・実現したいこと
簡単な会話の表示と音声の再生。
詳細:xcodeでif文を使用しButtonの押す回数に応じて、文章の表示と音声ファイルが再生されるようにしたい。
###発生している問題・エラーメッセージ
音声ファイルが再生されない
###該当のソースコード
//
// ViewController.swift
// tsetb
//
// Created by Apple on 2017/09/30.
// Copyright © 2017年 Apple. All rights reserved.
//

import UIKit
import AVFoundation

class ViewController: UIViewController {

override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } var korehaplayer = AVAudioPlayer() var tapCount = 0 @IBOutlet weak var a: UILabel! @IBOutlet weak var b: UILabel! @IBAction func button(_ sender: Any) { tapCount += 1 if tapCount == 1 { a.text = "すいません、これはいくらですか。" b.text = "" let korehapath = Bundle.main.bundleURL.appendingPathComponent("koreha.wav") do{ korehaplayer = try AVAudioPlayer(contentsOf: korehapath, fileTypeHint: nil) korehaplayer.play() }catch{ print("Error!")} } else if tapCount == 2 { a.text = "" b.text = "それは、さんぜんえんです" } else if tapCount == 3 { a.numberOfLines = 2; a.text = "たかいですね。\nじゃあ、あのとけいはいくらですか。"; b.text = "" } else if tapCount == 4 { a.text = "" b.text = "あれは、せんえんです。" } else if tapCount == 5 { a.text = "じゃあ、そのとけいをください。" } } }

//////////////////////////////////////////////////////////
//以下、t_obara様より頂いた追記依頼
ViewController.swift
tsetb

Created by Apple on 2017/09/30.
Copyright © 2017年 Apple. All rights reserved.

import UIKit
import AVFoundation

class ViewController: UIViewController {

override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } var korehaplayer = AVAudioPlayer() @IBAction func button(_ sender: Any) { let korehapath = Bundle.main.bundleURL.appendingPathComponent("koreha.wav") do{ korehaplayer = try AVAudioPlayer(contentsOf: korehapath, fileTypeHint: nil) korehaplayer.play() }catch{ print("Error!")} } }

###試したこと
音声ファイルをmp3形式で試してみたが、再生されなかった。
音声ファイル名とコードの相違かと思いコピーペーストで編集を行ったが再生されなかった。
音声ファイルだけで再生を試みたが再生されない。デバックではエラーが出てません。(10/4 t_obara様から追記依頼の結果)
###補足情報(言語/FW/ツール等のバージョンなど)
xcode_version9.0
swift_version4.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2017/10/04 01:13

問題を簡単にするために、ボタンの押下回数云々は抜きにして、単純に音声ファイルを再生するコードがうまくいくかをまず確認されてはいかがですか?もし確認済みなのであれば、そのコードとうまくいかない場合のコードの違いを明記していただくと回答が得られ易くなるかと思います。
guest

回答1

0

自己解決

https://teratail.com/questions/69611
ベストアンサーにより解決致しました。
ありがとうございました。

投稿2017/10/04 12:46

sichibusade

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問