为何轨迹栏停止处理我的视频?

如何解决为何轨迹栏停止处理我的视频?

我正在使用vlc.dotnet创建一个应用程序,我想实现一个跟踪栏,以便能够滚动浏览视频。但是我面临的问题是,跟踪栏似乎可以工作到视频中的特定点,并且每个视频似乎都不同。以下是我的代码摘要,因为实际代码很长。

Decimal value;
 decimal value2;
 
 private void Form1_Load(object sender,EventArgs e)
        {
        
          trackBar1.ValueChanged += new EventHandler(trackBar1_ValueChanged);
          
           control = new VlcControl();
            var currentAssembly = Assembly.GetEntryAssembly();
            var currentDirectory = new FileInfo(currentAssembly.Location).DirectoryName;
            var libDirectory = new DirectoryInfo(Path.Combine(currentDirectory,"libvlc",IntPtr.Size == 4 ? "win-x86" : "win-x64"));
            control.BeginInit();
            control.VlcLibDirectory = libDirectory;
            control.Dock = DockStyle.Fill;
            control.EndInit();
            panel1.Controls.Add(control);
            
             main_form_LC4_data();
        }
        
         void main_form_LC4_data()
        {
           control.SetMedia(new Uri(selected_LC4_File).AbsoluteUri);
                control.Audio.Volume = 0;
                control.Update();
        }
        
          private void button11_Click(object sender,EventArgs e)
        {
             trackBar1.Value += (int)value2;
        }
        
        private void button12_Click(object sender,EventArgs e)
        {
                if (trackBar1.Value == 0)
            {

            }
            else
            {
                trackBar1.Value -= (int)value2;
            }
        }
        
         private void trackBar1_ValueChanged(object sender,System.EventArgs e)
        {
           control.Time = trackBar1.Value;
          
        }

代码还具有两个按钮,可在跟踪栏中增加和减少值,因此用户可以在跟踪栏旁边使用该按钮滚动浏览视频。这些按钮也可以工作到特定点,然后停止。该视频包含与每一帧链接的元数据行,因此使用视频的长度和元数据的行数,我尝试计算最大长度和报价频率,这似乎也不起作用。下面的代码显示了我如何尝试实现计算。

  var player = new WindowsMediaPlayer();
        var clip = player.newMedia(selected_LC4_File);
        string vOut = clip.duration.ToString();

        long howdy = Convert.ToInt64(clip.duration); 

        string vOut2 = vOut.Replace(".","");
        int x = Int32.Parse(vOut2);
        int x_result = x * 10;
        int test = lc4_file_calculations.Count;
        value = Decimal.Divide(x_result,test);
        
        Console.WriteLine("Video Time : " + x_result);
        Console.WriteLine("Frames : " + test);
        Console.WriteLine("FPS : " + value);
        
         value2 = value;
        
         int a = test;
        trackBar1.Maximum = a
        trackBar1.TickFrequency = value;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?