初级视频编辑室|草蜢非编论坛|初级视编室|草蜢视频编辑|会声会影|威力导演|电子相册

 找回密码
 加入初编室
搜索
查看: 1023|回复: 2
打印 上一主题 下一主题

[Director 多媒体爱好者] 如何从director文件中取声音文件

[复制链接]

296

主题

1132

帖子

2万

积分

超级版主

Rank: 8Rank: 8

论坛版主精华帖勋章

跳转到指定楼层
楼主
发表于 2014-11-23 21:08:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
onekey onekey
遇到一个棘手的问题,一个台湾客户给我一个dcr文件,让我从中拿出声音文件,我试验了很多国外的东西发现都不行,什么audioxtra全试验过了,后来我想是不是可以先在[url=]director[/url]中将文件先拷贝进剪切板,然后通过其他手段呢,结果成功了工具
是director mx,visual .net 2003
先是director程序,这里就是个miaw
global keywait
global click,miaw
global ix
on mouseup me
  click=1
end
on cbm
  if(click=1) then
    forget(miaw)
  end if
  go to the frame
end
on addMmen img
  ix=ix+1
  if ix<=3 then
    mem=_movie.newMember("bitmap")
    mem.image=img
  end if
  
end
on exitFrame me
  case(keywait) of
    0:
      ix=1
      miaw=window().new("courses/course_01/crs_01_01_0001/crs_01_01_0001")
      miaw.open()
      click=0
      set keywait=1
      
    1:
      tell miaw
        
        
        repeat with i=1 to the number of castlibs
          repeat with j=1 to the number of members of castlib i
            if member(j,i).type=#sound then
              -- object = xtra("ExportSWF").new()
              -- object.exportSWF( member(j,i), "D:\pic\l\"& member(j,i).Name&".swf")  
            
                member(j,i).copyToClipBoard()  
            
              ALERT(Member(J,I).nAME)
              
              
              
            end if
          end repeat
        end repeat
        --savemovie "输出文件名" --为输出的文件命名
      end tell
       forget(miaw)
      set keywait=2
    2:
      
      set keywait="n"
    "n":
      cbm()
      nothing
      
  end case
  go to the frame
end
然后是一段vb程序,加个按钮,按钮的事件中写:
  Dim OBJ As IDataObject = Clipboard.GetDataObject()
        If (OBJ.GetDataPresent(DataFormats.WaveAudio)) Then
            Dim df As Stream = CType(OBJ.GetData(DataFormats.WaveAudio, True), Stream)
            Dim inreader As BinaryReader = New BinaryReader(df)
            inreader.BaseStream.Position = 0
            Dim bt() As Byte
            bt = inreader.ReadBytes(df.Length)
            inreader.Close()
            Dim fil As FileStream = New FileStream(String.Format("e:\3\{0}-{1}{2}{3}.wav", ix, Now.Day, Now.Minute, Now.Second), FileMode.OpenOrCreate)
            Dim inwriter As BinaryWriter = New BinaryWriter(fil)
            inwriter.Write(bt)
            inwriter.Close()
            ix = ix + 1
        End If
操作方法是 线运行director程序,出现alert的时候,运行vb程序,点击按钮 就可以生成声音文件并保存到磁盘中
操作虽然麻烦,但是城功率是100%
楼主热帖
河边已是一首歌
回复

使用道具 举报

206

主题

4518

帖子

7万

积分

初编室元帅

Rank: 14Rank: 14Rank: 14Rank: 14

活跃会员帅哥会员百帖纪念荣誉勋章论坛万元户

沙发
发表于 2014-11-23 21:52:55 | 只看该作者
谢谢楼主提供分享!!

131

主题

5815

帖子

11万

积分

初编室元帅

Rank: 14Rank: 14Rank: 14Rank: 14

帅哥会员活跃会员论坛万元户百帖纪念荣誉勋章

板凳
发表于 2015-1-21 11:40:48 | 只看该作者
逛一逛,看一看。
您需要登录后才可以回帖 登录 | 加入初编室

本版积分规则

手机版|小黑屋|初级视频编辑室

GMT+8, 2024-11-16 04:03 , Processed in 0.069457 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表