🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1449閲覧

AudioSource再生開始時に一瞬ノイズが入る

Youbun

総合スコア125

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/09/19 05:08

行っていること

  • Android用の音楽プレーヤーを作成中
  • あるオブジェクトに**1つの「AudioSource」**コンポーネントを作成して

そのAudioSourceに楽曲の「AudioClip」を設定して再生する仕様

問題点・質問

  • 楽曲再生時(下記ソース「As_Play.Play();」処理時)に

一瞬「ザッ」というノイズが再生されてしまいます。
**※処理前に再生していた音が残っていて一瞬出力されてる?**ように感じました

  • このノイズは、PCのエディター上かつ、Android実機のどちらでも発生します。

この再生開始時のノイズの発生を抑える方法があるのでしょうか?
お手数をおかけしてすみませんが
よろしければご教示をお願いいたします!

ソースコード

以下に、現状のソースを記入します。

C#

1//-------------------------------------------- 2// 変数定義 3//-------------------------------------------- 4public static AudioSource As_Play; // 再生に使用しているAudiosourse 5public static float _Time_Now = 0; // 一時停止時の時間を保持 6 7//-------------------------------------------- 8// 再生時の処理 9//-------------------------------------------- 10As_Play.time = _Time_Now; 11As_Play.Play(); 12 13//-------------------------------------------- 14// 一時停止時の処理 15//-------------------------------------------- 16_Time_Now = As_Play.time; 17As_Play.Stop(); 18 19//-------------------------------------------- 20// 楽曲変更時の処理 21//-------------------------------------------- 22// 曲再生中なら止める 23bool isokplay = true; 24if (As_Play.clip != null) 25{ 26 if (As_Play.isPlaying) 27 { 28 As_Play.Stop(); 29 } 30 else 31 { 32 isokplay = false; 33 } 34 _Time_Now = 0; 35 As_Play.time = 0; 36} 37// AudioClip取得 38AudioClip audioClip= GetNextSongClip(SongMd); 39As_Play.clip = audioClip; 40if (isokplay) 41{ 42 As_Play.Play(); 43}

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

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

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

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

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

sakura_hana

2019/09/26 02:19

解決出来るか分かりませんが、停止から再生までの間に時間を置く(コルーチンで数フレーム待つとか)とどうでしょうか。 (あと一時停止をPause/UnPauseにすると何か変わったりするでしょうか?)
Youbun

2019/09/27 06:18

返信遅れてすみません。 回答ありがとうございます。 試してみましたが 特に変化はありませんでした。 ノイズはうるさくはないので 言われなければ特に気にならないのかな・・・と妥協して 無視する方向でいきました。 一応やったことを書いて質問を閉じさせていただきます。
guest

回答1

0

自己解決

解決しませんでしたが、
対応してみたことを記入しておきます。
・As_Play.Stop()で停止する前に.timeの値に0を設定してみた
・再生する前に、AudioSourceのclipにnullを設定してから元に戻して再生してみた
・再生する前に、AudioSourceを非アクティブにしてみた
→すべて意味なかった
・ノイズ対策で再生後、数msだけvolume=0にしてみた
→ノイズは消えたが、音楽の頭も再生されなかったため不採用

以上です。

投稿2019/09/27 06:16

Youbun

総合スコア125

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問