0

メイン画面としてパネルを持ち、前と次のビデオ用に両側に 2 つのパネルを持つ Winform アプリケーションを開発しました。アプリケーションがさまざまなビデオを走査してメイン パネルに設定するのに役立つ 2 つのボタン。私は今21のビデオを持っています......これは私のコードです....

public void loadvideo2(int a)
    {

            int width = viewscreen.Width;
            int height = viewscreen.Height;
            int width1 = nxtpnl.Width;
            int height1 = nxtpnl.Height;
            int width2 = prepnl.Width;
            int height2 = prepnl.Height;

            video = new Video(vpath[a]);
            video.Owner = viewscreen;
            video.Stop();
            viewscreen.Size = new Size(width, height);

            video1 = new Video(vpath[a + 1]);
            video1.Owner = nxtpnl;
            video1.Stop();
            nxtpnl.Size = new Size(width1, height1);

            video2 = new Video(vpath[a - 1]);
            video2.Owner = prepnl;
            video2.Stop();
            prepnl.Size = new Size(width2, height2);

            plystpBtn.BackgroundImage = Video_Project.Properties.Resources.Style_Play_icon__1_;
            plystpBtn.BackgroundImageLayout = ImageLayout.Stretch;

            trckstatus.Minimum = Convert.ToInt32(video.CurrentPosition);
            trckstatus.Maximum = Convert.ToInt32(video.Duration);

            duration = CalculateTime(video.Duration);
            playposition = "0:00:00";
            posdurtrclbl.Text = playposition + "/" + duration;

            b = a;
            vlbl.Text = "Video" + Convert.ToString(b);
        } 

 private void preBtn_Click(object sender, EventArgs e)
    {
        videono += 1;
        if (videono <= vcount-1)
        {
            loadvideo2(videono);
        }
        else
            MessageBox.Show("File Not Found!!!");
    }

 private void nxtBtn_Click(object sender, EventArgs e)
    {
            videono -= 1;
            if (videono >= 0)
            {
                loadvideo2(videono);
            }
            else
                MessageBox.Show("FIle Not Found!!!");
    }

ボタンを押してビデオをトラバースしている間、エラーメッセージが表示される16番目のビデオまで正常に動作します

ffmpeg.dll failed to load

誰でもこれを解決するのを手伝ってもらえますか

4

1 に答える 1

0

それを解決しました。おそらくメモリ消費の問題でした。

public void loadvideo2(int a)
    {


            int width = viewscreen.Width;
            int height = viewscreen.Height;
            int width1 = nxtpnl.Width;
            int height1 = nxtpnl.Height;
            int width2 = prepnl.Width;
            int height2 = prepnl.Height;

            video.Dispose();


            video = new Video(vpath[a]);
            video.Owner = viewscreen;
            video.Stop();
            viewscreen.Size = new Size(width, height);

            video1 = new Video(vpath[a + 1]);
            video1.Owner = nxtpnl;
            video1.Stop();
            nxtpnl.Size = new Size(width1, height1);

            video2 = new Video(vpath[a - 1]);
            video2.Owner = prepnl;
            video2.Stop();
            prepnl.Size = new Size(width2, height2);



            plystpBtn.BackgroundImage = Video_Project.Properties.Resources.Style_Play_icon__1_;
            plystpBtn.BackgroundImageLayout = ImageLayout.Stretch;

            trckstatus.Minimum = Convert.ToInt32(video.CurrentPosition);
            trckstatus.Maximum = Convert.ToInt32(video.Duration);

            duration = CalculateTime(video.Duration);
            playposition = "0:00:00";
            posdurtrclbl.Text = playposition + "/" + duration;

            b = a;
            vlbl.Text = "Video" + Convert.ToString(b);
            video1.Dispose();
            video2.Dispose();
        }
于 2012-09-19T10:40:18.873 に答える