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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

637閲覧

Javaで音声を同時に再生する

atushi3333

総合スコア15

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/10/03 07:33

編集2020/10/03 07:34

ミュージックプレイヤーアプリを作っています。
通常のプレイヤーではなくオフヴォーカルとアカペラ、
二つの音声を同時にずれなく再生するものです
ほぼ完成しているのですがどうしても音声がずれることがあります
現在は↓のような方法で実装しています。
もちろん順次処理だからずれるのが当たり前なのはわかっています。

Java

1 2private static void stop(Clip[] clips) { 3 for (Clip clip: clips) { 4 clip.stop(); 5 } 6 } 7 8 9private static void play(Clip[] clips) { 10 for (Clip clip: clips) { 11 clip.start(); 12 } 13 } 14

再生ボタンをクリックするとplayメソッドが呼ばれオフヴォーカルとアカペラが同時に再生
停止ボタンをクリックするとstopメソッドが呼ばれオフヴォーカルとアカペラが同時に停止
というのが理想なのですが
ここで音声がずれてしまいます。
私の予想としては、

  • 順次処理であることによるずれ
  • コンピュータが他のプログラムを実行している場合に起きる割込み

などが関係しているのだと思います。

もちろん完全に同時に再生するのは無理ですが、少しでもずれがなくclipのスタート、ストップを同時に行うにはどうするのがいいでしょうか?
プログラムでの解決ではなくもっと別の方法の解決法があるよ!というのもあればぜひ教えていただきたいです。
よろしくお願いします。

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

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

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

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

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

A-pZ

2020/10/10 03:11

clip.stop()は再生停止の処理ではないかと。 ファイル読み込み再生処理の実装を書くと回答が得られるかもしれません。
guest

回答1

0

ベストアンサー

threadを使ったら(ほぼ)同時にできるのではないでしょうか?

投稿2020/10/09 15:30

編集2020/10/09 15:30
cretter

総合スコア91

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問