問題タブ [jlayer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 競合する Jar メソッド
Java で最初の GUI 音楽プレーヤーを作成しようとしています。これまでのところ、Javasound と MP3SPI で MP3 を再生できました。今、私は .m4a の曲をサポートしたいと考えています。調査した結果、これを行うのに最適なライブラリは JAAD です。ダウンロードしてプロジェクトに追加したところ、.m4a の曲を再生しようとすると完璧に動作しました。JAAD ライブラリを追加した後に .mp3 を再生しようとすると、問題が発生します。曲を再生するための私のコードは次のとおりです。
(playSong() は単純にストリームを読み取り、そのバイトを SourceDataLine に書き込みます)
JAAD ライブラリを追加した後に .mp3 を再生しようとすると、次のエラーが表示されます。
私の理解では、Javasound と JAAD の getAudioInputStream が競合しているようです。この競合を解決するにはどうすればよいですか?
java - JLayer クラスのスタック (JPanel へ)
レイヤード効果を得るために ontop のインスタンスを積み重ねることを望んでJLayers
いましたが、そのように動作したくないようです。複数のクラスで実装された複数のエフェクトを1つにまとめて飾りたい。JPanel
LayerUI<JPanel>
例えば
への引数new JLayer
は同じJPanel
インスタンスですが、LayerUI
インスタンスは異なることを行います。
最後に追加されたものが勝つようです。どちらもメソッドのコンテキストに直接描画されpaint
ます。おそらくそれで..?
オラクルのチュートリアルはこちら
java - バッファ サイズがオーディオ データに影響するのはなぜですか?
ファイルを再生するためにjavax.sound.sampled
とを使用しています。オーディオ入力ストリームを分析して、曲の開始時と終了時を判断しようとしています (MP3 の最初と最後のオーディオ レベルに基づいて)。4 分の曲の実際の音楽は 3 分 55 秒しかなく、残りは無音である可能性があるため、これを判断しています。JLayer
MP3
ストリーム内のゼロ以外の最初と最後のバイトを見つけることで、この情報を特定できると思いました。
問題:問題は、バッファ サイズを調整すると、ゼロ以外の最初のバイトの位置が変わることです。これはなぜですか?バッファサイズに関係なく一定のままであるべきではありませんか?
たとえば、バッファ サイズが 16 の場合、startFrame は 17 番目のバイトに対応します。バッファ サイズが 64 の場合、startFrame は 65 番目のバイトに対応します。
コードは次のとおりです。
オーディオ入力ストリームとオーディオが一般的にどのように機能するかを誤解していると思います。
java - mp3 を pcm にデコードし、Google Android でオーディオトラックを再生する
まず第一に、 function を使用しない場合decode_path
、自分のコードで .wav ファイルを再生できます。これは正常に動作しJlayer
、オーディオ トラックを使用して曲を再生します。
次に、 function を使用するdecode_path
と、mp3 を pcm file にデコードし、byte[]
functionPlayAudioTrack
に渡して再生させることができます。
質問は、コードのどこが間違っているのかわかりません.320Kbps、44.1Khzのステレオタイプ、レイヤー3 mp3を使用していますが、AudioTrack
ノイズは再生されますが音楽は再生されません〜!!!!
誰でもできますか????
私のコード
android - オーディオトラックで PCm データを再生する
audiotrack を介して pcm データを再生しようとしたときに、jLayer lib を使用して mp3 をデコードしましたが、多くのオーディオ歪みが生じています。
私のデコーダコード:
java - JLayer は常に ArrayIndexOutOfBounds 例外をスローします
JLayer を使用して MP3 をデコードし、PCM データとして保存しています。ただし、使用する MP3 ファイルに関係なく、インデックス 443 の ArrayIndexOutOfBoudnsException が常に発生します。これは特定の MP3 でのみ発生すると聞いていますが、再生するすべての MP3 のすべてのフレームで発生しています。
メソッドは次のコードで呼び出されます。
スタックトレース:
java - [1,0] のマップから透明なオーバーレイを使用して画像領域に色を付ける効率的な方法
通常、このコンテキストのビットマップ (?) は、下にあるイメージのビットマップを指すため、タイトルにビットマップという単語を使用しませんでした。
いくつかの異なる領域に分割された画像があります。領域ごとに、1 と 0 のマップ (ビットマップ) があり、1 は領域内を表し、0 は領域外を表します。画像のすべての部分が領域で覆われているわけではなく、領域が重なっている場合があります。画像は寸法 (480x360) です。
私がやりたいことは、マウスで領域をホバーしたときに透明な赤で画像をオーバーレイすることです。私の問題は、現在の方法が非常に遅く、オーバーレイが表示されるまでに 1 ~ 2 秒かかることです。
私の現在のアプローチは、ImagePanel (BufferedImage を描画する JPanel の拡張) で JLayer を使用することです。次に、LayerUI のインスタンスは、マウスが移動したときにオーバーレイを描画します。
では、これをより効率的にするにはどうすればよいでしょうか。JLayer 以外の方法を使用した提案を歓迎します。ビットマップをスイングメソッドで「魔法の」方法で使用できますか? BufferedImage の基になるビットマップと混合できますか? 透明度を取り除くことだけが私を助けることですか? (これは私が保持したいものです)
必ずしも質問に関連しているわけではありませんが、まだ解決していない2つのその他の問題:
- オーバーレイは、マウスが移動するたびに再描画されます。これはリソースの浪費のように思えます。
- リージョンがオーバーラップしている場合、ペイントするリージョンを選択するにはどうすればよいですか?