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

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

ただいまの
回答率

90.47%

  • Swift 2

    1334questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

  • Xcode 7

    615questions

    Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

  • SpriteKit

    114questions

    SpriteKitは、iOSやOS Xで使用できるApple社製の2Dゲーム開発フレームワークです。

Swift.AVAudioplayerでスクリーン上でサウンドの操作(再生、消音)

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 779

yumi00

score 2

こんばんは。初めての投稿失礼します。
何度か指摘して頂き何回もご迷惑をおかけしますが、よろしくお願いします。

前提・実現したいこと

SpriteKitで、クイズゲームを作成していて、スクリーン上でサウンドの操作(再生、消音)
背景音楽の再生、消音の方法は理解しているのですが
クイズの設問に正解した時に効果音(ピンポン)、不正解時(ブブー)と再生されるのを消音にしたいと思っています。効果音にも消音を適応する方法が分かりません。

目指している物は文学史クイズのような消音ボタンの効果です。
ボタン

試したこと

SwiftDocsを参考にして、背景音楽の再生、消音はできているのですが、
SKActionによるサウンド再生の通知センターのイベントを利用すれば実装可能と思われるのですが、
私自身無知な為SKActionによるサウンド再生がSwiftでは無く、object-Cで記載されている為、
理解に苦しんでいます。

補足情報(言語/FW/ツール等のバージョンなど)

Swift2.2
Xcode7.3.1

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2016/05/12 07:10

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

  • TakeOne

    2016/05/12 08:00

    「タップ時の問題について解決できない」というのは、コードを実装して動かしてみたんだけど、思った通りに動かないということですか?そうであれば、実装したコードの内容と、どのような動作を期待しているのに実際に動かすとどうなってしまうのかを具体的に説明してください。タップの検出方法がわからないとか、効果音の再生方法がわからないとか、そもそもやり方がわからないという話であれば、何がわからないのかを具体的に説明すれば、優しい回答者が丁寧にやり方を回答してくれるかもしれませんが、そういう場合はまず自分でgoogle検索した方が早いと思います。それで、検索して参考にしたサイトの説明がわからなければ、具体的に参考にしたサイトのURLを示して、その説明の何がわからないのかを具体的に聞いた方が回答を得られやすいと思います。 あと「言語とツールは最新になります」というのも、あなたが最新と認識しているものが本当に最新なのか意識合わせした方が良いですし、後でこの質問を見た人もわかるように、ちゃんとバージョン番号を書いておいた方がよいと思います。

    キャンセル

  • yumi00

    2016/05/13 04:09 編集

    「タップ時の問題について解決できない」というのはタイトルの意味のままです。他に深い意味はありません。 復唱になりますが、 Swift.AVAudioplayerでタップ時の効果音.再生のOn,Of が、できないという事です。 「コードを実装して動かしてみたんだけど、思った通りに動かないということですか」 とありますが、本件に書いてある様に 「ネットや書籍等を色々調べ、背景音楽の再生、停止は実現できた」 と記載しましたので、実現しているコードを書いても何も意味が無いと思ったので書きませんでした。 実現したいコードの方法をお聞きしたいので、コードの書きようがありません。 「タップの検索方法が分からないとか、効果音の再生方法がわからないとか」とありますが、 「ネットや書籍等を色々調べ、背景音楽の再生、停止は実現できた」と記載したので、音楽の再生方法は理解できていると理解してもらえると思います。 「参考にしているサイトを記載」 とありますが、そのサイトはUIkitを使用しており、私が考えているのはSpritekitなので、答えが混合しないようにと思い記載しませんでした。 「バージョン」についてですが、 失礼致しました。 後の人の事を考えていませんでした。 私自身まだ知識が浅いもので、説明が至らない所もあります。しかし、この質問をするのに、私なりに色々と考え、時間をかけて投稿しました。 それを丸投げ質問と言われると、 腑に落ちません。 質問する上でこのような事を言える立場では無いのですが、よろしくお願いします。

    キャンセル

回答 1

0

念のため言っておきますが、「やってほしいことだけを記載した丸投げの質問」というマイナス評価を入れたのは私ではありません。マイナス評価を入れる人は、コメントをするのも面倒な人が入れます。わざわざコメントを入れている人はたいていマイナス評価している人とは別の人です。

マイナス評価を入れると、そのコメントの中に「調査したこと・試したことを記入していただくと、回答が得られやすくなります」というメッセージが自動的に入るので、通常はその通り調査したことや試したことを追記してもらえばいいんですが、あなたの質問には「試したこと」という項目が一応あるのにマイナス評価が入っているのでちょっとかわいそうだなと思って内容を読んでみると、何を試したのか全くわからないし、それ以前にどのようなことをしたいのかもわからなくて全然説明できてなかったので、何を書けばいいのかわからないのだろうなと思って、親切のつもりでどのようなことを書けばいいのかをコメントしました。批判されたように思われたのでしたらすみません。

まだちゃんとわかってないのですが、いろいろ想像した結果、もしかしたら「背景音楽」と書かれているものと「効果音」と書かれているものは同じものではないかと推測しました。もしそうだとして、さらにいろいろ推測して、背景音楽はUIViewControllerベースのViewControllerの中でAVAudioPlayerを使って再生していて、タップイベントはSKSceneベースのSceneの中でtouchesBeganで取得していて、このtouchesBeganの処理でどうやってViewControllerのAVAudioPlayerを制御したらいいのかわからないという話であれば、
http://chemicalfactory.hatenablog.com/entry/2014/08/12/013203
とかが参考になると思います。

AVAudioPlayerを使っている場所が違うとか、「背景音楽」と「効果音」が別物だとかという話でしたら、今できているコードを示してもう少し現状の説明をしてもらわないと、何がしたくてどこまでできていて、この後どうしたいのかやっぱりわからないので、すみませんが私には回答出来ません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/13 19:24

    大変失礼しました。全くその通りです。マイナス評価の件については初めて知りました。
    私なりに考えて投稿したとしてもそれが伝わらないのならば、丸投げ質問と言われるのは当たり前の事でした。
    以後この様な事がない様に質問する立場の最低限の事ができる用にします。
    本当にすみませんでした。それと私の少ない情報から、参考サイトまで書いてもらい、本当にありがとうございます。
    質問の内容を書き換えましたので、よろしかったら回答よろしくお願いします。
    また不手際がありましたら、改善しますので、よろしくお願いします。

    キャンセル

  • 2016/05/13 20:59 編集

    書き換えていただいた質問を読んでもやりたいことがまだはっきりわかってないのですが、最終的にやりたいのはクイズアプリ(のようなもの)で、背景音楽が常に流れていて、正解をタップすると正解音(ピンポン)が鳴り、不正解をタップすると不正解音(ブブー)が鳴るようになっていて、サイレントボタンのようなものをタップすることで、再生中の背景音楽を停止し、正解/不正解をタップしてもピンポン/ブブーがならないようにしたいということですか?

    それで、今回聞きたいのは、背景音楽をAVAudioPlayerで再生する方法がわかっていて(そこまでは自分のアプリに組み込んでいて)、サイレントボタンを押した時に背景音楽の再生を停止するにはどうしたらよいかということですか?
    もしそうでしたら、まさに回答で示したURLにその制御方法が書かれていると思って紹介したのですが。
    SwiftでなくてObjective-Cで説明されているページですが、要点は同じです。通知センター(NSNotificationCenter)を使って、タップイベントを処理しているところからViewControllerにイベントを通知すればいいです。

    やりたいことや聞きたいところが違うなら、上記の想定のどこまで合っていて、どこが違うのかを説明してください。

    キャンセル

  • 2016/05/14 01:07

    すみません、また質問を書き直しました。やりたい事は上記の内容であっています。

    キャンセル

  • 2016/05/15 08:24

    > クイズの設問に正解した時に効果音(ピンポン)、不正解時(ブブー)と再生されるのを消音にしたいと思っています。効果音にも消音を適応する方法が分かりません。

    やっと聞きたいことがわかりました。AVAudioplayerを使うことにこだわられていたので、効果音ではなく背景音楽の制御について知りたいのかと勘違いしていました。効果音の制御の話であれば、AVAudioplayerを使う必要はないし、AVAudioplayerのやり方を参考にする必要もありません。

    効果音が鳴らないようにしたいというのは、短い効果音(ピンポン/ブブー)が鳴っているのを途中で止める必要はなく、消音中かどうかを判断し、消音中なら`self.runAction(mySoundAction)`を実行しなければよいだけだと思います。消音中かどうか判断するには、消音中フラグをどこかにプロパティで定義しておいて消音ボタンを押した時にそのフラグをON/OFFし、必要な時にそのフラグを見て判断すればいいだけだと思います。

    キャンセル

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

  • ただいまの回答率 90.47%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Swift 2

    1334questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

  • Xcode 7

    615questions

    Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

  • SpriteKit

    114questions

    SpriteKitは、iOSやOS Xで使用できるApple社製の2Dゲーム開発フレームワークです。