0

Microsoft.DirectX.AudioVideoPlayback.dllファイルを使用してオーディオファイルとビデオファイルを再生するために、別のプログラム内で使用する簡単なプログラムを作成しようとしています。信じられないほど複雑である必要はないので、以下にリストされているコードを持っています。私が抱えている問題は...まあ、プログラムは何もしません。メインウィンドウも表示されず、理由もわかりません。.Net 4.0を使用していますが、DirectXDLLバージョンでは1.0.2902.0と表示されています。オーディオファイルとビデオファイルの初期化を別の場所に移動してみました(具体的には、ロードイベントとボタン押下イベント)。ボタンを押すイベントでは、フォームが読み込まれますが、ボタンを押すとすぐにプログラムがハングします。エラーなどはありません。誰もがここで何が起こっているのか知っていますか?誰かがオーディオとビデオファイルを再生するためのより良いアイデアを持っているなら、私は

using Microsoft.DirectX.AudioVideoPlayback;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MediaPlayer
{
    public partial class Player : Form
    {
        Audio derp;
        Video herp;        
        public Player()
        {
            InitializeComponent();
            this.derp = new Audio("<Audio File Name>");
            this.herp = new Video("<Video File Name>");
            this.herp.Owner = this.panel1;            
        }
        private void btnPlayPauseStop_Click(object sender, EventArgs e){            
            switch(((Button)sender).Text){
                case "Play":
                    if (!herp.Playing)
                        herp.Play();
                    break;
                case "Pause":
                    if (!herp.Paused)
                        herp.Pause();
                    break;
                case "Stop":
                    if (!herp.Stopped)
                        herp.Stop();
                    break;
            }
        }
        private void Player_Load(object sender, EventArgs e)
        {            

        }
    }
}
4

1 に答える 1

-1

これを使用して、独自の「Media Player Classic」クローンを作成しています

これを必ず 32 ビット モードでデバッグしてください: Project Menu --> {project} Properties ... --> Build --> Platform Target = x86

ビデオの場合、オーディオはロードしません (自動的に行われます)。したがって、両方を使用する代わりに、必要な方 (ビデオまたはオーディオ) のみを使用してください。

次に、パネルが表示され、十分な大きさであることを確認します (「new Video(...)」の後にサイズを確認してください)。

于 2013-01-23T12:54:04.927 に答える