[解決済み] java.io.IOException: マークとリセットはサポートされていません。
2023-07-06 12:35:05
質問
try {
//String location = dir1.getCanonicalPath()+"\\app_yamb_test1\\mySound.au";
//displayMessage(location);
AudioInputStream audio2 = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("mySound.au"));
Clip clip2 = AudioSystem.getClip();
clip2.open(audio2);
clip2.start();
} catch (UnsupportedAudioFileException uae) {
System.out.println(uae);
JOptionPane.showMessageDialog(null, uae.toString());
} catch (IOException ioe) {
System.out.println("Couldn't find it");
JOptionPane.showMessageDialog(null, ioe.toString());
} catch (LineUnavailableException lua) {
System.out.println(lua);
JOptionPane.showMessageDialog(null, lua.toString());
}
このコードは、netbeansからアプリケーションを実行すると正常に動作します。音は再生され、例外はありません。しかし、distフォルダから実行すると、サウンドは再生されず、以下のようになります。
java.io.IOException: mark/reset not supported
をメッセージダイアログに表示します。
どうすればこれを修正できますか?
どのように解決するのですか?
のドキュメントは
AudioSystem.getAudioInputStream(InputStream)
は言う。
このメソッドの実装では 複数のパーサーが がサポートするかどうかを判断するために、複数のパーサーがストリームを をサポートするかどうかを決定するために、複数のパーサーを必要とする場合があります。これらのパーサーは ストリームをマークし、十分なデータを読み取り ストリームをサポートしているかどうかを判断するために ストリームをサポートしているかどうかを判断するのに十分なデータを読み込み、サポートしていない場合は ストリームの読み取りポインタを元の位置に戻し の位置に戻します。入力ストリームがこれらの操作をサポートしていない場合 がこれらの操作をサポートしていない場合、このメソッド はIOExceptionで失敗する可能性があります。
したがって、このメソッドに提供するストリームは、オプションの
マーク/リセット
機能をサポートする必要があります。リソースストリームを
BufferedInputStream
.
//read audio data from whatever source (file/classloader/etc.)
InputStream audioSrc = getClass().getResourceAsStream("mySound.au");
//add buffer for mark/reset support
InputStream bufferedIn = new BufferedInputStream(audioSrc);
AudioInputStream audioStream = AudioSystem.getAudioInputStream(bufferedIn);
関連
-
[解決済み] Javaで、サポートされていない/実装されていない操作に対して投げる標準的な例外は何ですか?
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
Java の switch case 文で必要な定数式の問題の解決法
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
java マイクロソフト払い戻し予期せぬサーバーからのファイルの終了
-
Junitのユニットテストエラー
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。
-
ApiModel と @ApiModelProperty の使用法
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
プロジェクトの依存関係を解決できない。
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
Javaクラスが "Error occurred during initialization of boot layer "というエラーで実行される。
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
java send https request prompt java.security.cert.について。
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
Java Runtime Environmentを継続するためのメモリが不足しています。
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ