开发环境:Visual Studio 2005 C# 
我自己写的一个播放器,文件格式是我自己定义的。当我的计算机性能较好时可以流畅的播放图像和声音。但是当我启用耗资源的软件后再打开播放器这时会出现声音已经播放完成但是图像还没有显示完,出现不同步现象。
简要的叙述一下原理:
首先打开一个多媒体文件时我把图像数据和声音数据分离出来然后放入相应的数组。然后声音数据通过SoundPlayer.Play播放声音,图像数据以一定的频率显示图像达到播放图像和声音的效果。

解决方案 »

  1.   

    补充:
    该文件内容包括文件头、前后相的镜头所拍摄到的图象数据、声音输入设备获得的音频数据,以及由加速度数据采样电路获得的加速度数据和文件尾。文件是以.CAM(.cam)为后缀扩展名.
    结构如下:
    文件头:从0X0000到0X02FF
    前相图象:CAMx
    后相图象:CAMm
    音频:PCMx (1/4S)(8Bit)
    加速度:ACCx(1/4S)(10Bit)
    加速度:ACCy(1/4S)(10Bit)
    ……
    前相图象:CAMx
    后相图象:CAMm
    音频:PCMx (1/4S)(8Bit)
    加速度:ACCx(1/4S)(10Bit)
    加速度:ACCy(1/4S)(10Bit)
    文件尾
      

  2.   

    这样处理哪能同步呢?建议楼主google搜一下影音文件格式说明,以开放的MP4为例,做个研究
      

  3.   

    就像redflanker说的没有错一般都是图像延迟。现在只有两个摄像头现在的机器处理起来一般还没有什么问题但是现在系统有新的需求将要播放8个摄像头。我想如果同时播放8个窗口的话估计就很容易出现延迟。
    原来我也有考虑过不要对音频和视频单纯的分离但是我的播放文件不单单记录了音频和视频数据还有传感器记录下来的汽车前后左右四个方向的受力数据。
      

  4.   

    这个播放器并不是传统意义上的播放器,它还有受力曲线图。危险驾驶等等的信息所以没有办法单单对视频和音频进行整合成为常见的多媒体格式。
     这里谢谢redflanker 和wpasp两位热心朋友的参与。
      

  5.   

    首先一定要确保图像正常播放,其次再考虑声音的同步。我也想过跳帧,但是音频使用的是soundplayer类播放的时候只能暂停、开始。我没与办法知道某个时候音频已经播放到第几帧所以最近我的思路也是在于如何详细控制音频的播放。