以前用delphi5编的一个多媒体播放软件,能支持     mpg,avi,wav,mp3,mid,dat等多种格式的文件,现在想一用,发现dat格式不能播放,其余均行,不知何故?出错提示的信息就是标题所列的那句话: "无法通过给定的扩展名确定设备类型"
【补充说明】1.我曾按网上找到的,一篇叫  如何在 Windows XP 中更改文件关联 ?    文章,把dat文件关联到我的播放软件,不起作用。 2.我用xp自己提供的mediaplayer播放,竟也出现完全同样错误。

解决方案 »

  1.   

    确定此dat文件是否是视频文件,没准是其他不支持的类型,只是改了一下后缀当然,可以通过判断各种文件的头信息,准确判定是否属于所支持的视频文件
      

  2.   


    ---------------------------------------------------------------------
    1. 用暴风确实能播放,说明不是被播放文件问题。2. 我想起来了:可能是微软反XP盗版搞的小名堂。在此之前我无意中更新
       过微软在xp中的mediaplayer,结果因“未通过正版验证”而失败,
       估计是强制性地关闭掉了对dat文件的关联功能。
       我想起用自编来试播,就是因为用mediaplayer播放失败的缘故。3. 既然暴风能播放,我估计问题不会很大,正如bdmh说的那样,打开文件,
       来查清文件的属性,没错,直接播放就行了。
      

  3.   

    引用 5 楼 gyk120 的回复:你把文件关联到你的程序上面,能够播放吗?--------------------------------------我把文件关联到我的程序上,不能够播放。不过要说明一点:我自的程序不是命令行式程序,而是采用了图形用户界面,要自己去选择被播放的文件。不知道这是否影响了关联功能。 
      

  4.   

    你机子上的mediaplayer有问题,卸载再下载个新的试试!
      

  5.   


    ********************************************************这不可能,
    因为微软的以及我自编的mediaplayer.exe对所有其他格式文件都可播放,
    且在其他机器上两个软件对dat格式也都可播放。似乎除了关联可能出问题之外,其他的原因都无法解释。
      

  6.   

    我好像解决了。类似的问题,但不是delphi。
    嗯,再从字面上分析一下你的,意思是说
    “你就光告诉哥这文件的扩展名是.dat,哥没办法判断这是不是视频文件啊!!”
    嗯,这么想来,确实有其他类型的文件的扩展名是dat的。数据文件日志文件什么的。
    嗯,你系统里面是不是装了某种软件恰好是支持dat扩展的文件的,但这个dat又不是视频的那个dat。
    你研究一下文件查看里面的扩展名,说不定就是这个问题。
      

  7.   


    又看了你前面说的,明明是视频的dat也会提示这个错误。
    我想是你的代码里面,判断文件名类型的那个函数,是不是通过查找注册表里已经注册了的扩展名之类的来判断的,而不是通过文件头判断。才会在明明是视频.dat的文件播放的时候出现这种问题。而在其他电脑上因为没有缺少dat扩展名或者重复注册dat扩展名,就没出现问题。最后解决了吗?解决了要来回帖嗷