私は音楽を再生中にアニメーションgifを再生するはずのWindowsフォームアプリケーションを作成しています。C#WindowsフォームのWMPは、GIFを表示した後にサウンドの再生を停止します。
私はSoundPlayerを使いましたが、すべてがうまく機能しました。それから、SoundPlayerで複数のオーディオファイルを再生できないことがわかりました。これは問題でした(バックグラウンドミュージックと効果が必要です)。
私はDirectSoundを少し見ましたが、私のアプリケーションはDirectSound関連(デバイス、バッファなど)を行うたびに凍っていました。
今私はWMPを試していますが、最初は満足していましたが、GIF(Transparent、重要な場合)を有効にすると、GIFが停止するのを見ながらフレームなどのために、何か重いものを積み込んでいるようです。これは、オーディオとGIFが同時に再生されるたびに発生します。 SoundPlayerを使用すると、オーディオに影響を与えずに一度に20のアニメーションGIFを再生できました。
SoundPlayerの =一つだけのオーディオファイル、容認できない
DirectSoundを再び試みるかもしれない価値が何らかの理由で(私はこれの焦点を置くしたいため =フリーズ:?それをまとめると
WMPに関する質問、とにかくコードを紛失しました)
WMP =アニメーションGIFでうまく再生できません。
私は両方の.wavファイルと.mp3ファイルを再生しようとしましたが、違いはありません。 以前にwmp.dllのリファレンスを追加しました。
using System;
using System.Windows.Forms;
using System.Media;
private void button2_Click(object sender, EventArgs e)
{
var player = new WMPLib.WindowsMediaPlayer();
player.URL = "song.wav";
pictureBox1.Visible = true;
}
WMPについて知っておくべきことはありますか?他の方法をお勧めしますか? pocessが特定のメモリ使用量に達すると、オーディオが停止するように見えます。約45 MBで安定していますが、オーディオファイルを再生すると音量が上がり始め、停止すると約48 MBになり、45 MBに戻ります。
時間を割いて私を助けてくれてどうもありがとう。
EDIT:解像度が500x500のGIF画像を使用していましたが、SizeMode = StretchImageを使用して実際には小さく見えるようにしました(200x200)。この場合、音楽は約0.2秒間再生されました。私はリソースの画像を100x100にリサイズし、StretchImageを使って200x200として再表示し、2つのGIFを一度にロードした場合、約4秒で約8秒再生しました。 .mp3のビットレートを170KBに変更することはまったく役に立たなかった。私のGoogle Chromeは3GBのメモリを使い、まだ複数の動画を再生していますが、私のフォームは50MBも苦労もしていません。確かにGIFと曲を演奏する方法がなければなりません。何らかの種類のMemoryAssignLimitプロパティがありますか?それとも、WMPは大きなリソースになると失敗しますか?それはWinFormsによって設定された制限ですか?