怎样实现文本显示和声音同步播放,要完整代码,
急待。马上送分

解决方案 »

  1.   

    1.创建新的工程,放入空间:RTF编辑器,按钮,单选分组框,数据表,时钟,标签。
    2.将多媒体控件的AutoEnable and AutoOpen设置为 false
    3.将应用程序,声音文件,和表存方在MYPROG。部分代码

    formCreaet(...);
    begin
       mediaplayer1.timeformat:=tfmilliseconds;
    //其他初试化设置
    end;mediaplayer1Click(...);
    begin
       with mediaplayer1 do
       begin
        case button of
        btplay:begin
               table1.frist;
               position:=start;
               currentplay:=1;
                 currentdisp:=1;
               richedit1.lines.clear;
               
               end;
       //其他的代码你就自己写
    end;
    end;为了同步显示,在ONTIME事件中写东东,如果当前播放的事件超过了当前记录的时间,则设置CurrentPlay为当前记录号,如果CurrentPlay 超过了CurrentDisp,则显示当前记录代码如下
    with mediaplayer1 do
    begin
    if CurrentButton=btPlay then
    begin
      if not table1.eof and (POSITION>TABLE1.FIELDVALUES['STARTTIME'] ) THEN
    cURRENTpLAY:=TABLE1.RECNO;
    end;
    end;如果要资料,我可以给你,不过分吗,要多多的。我的
    [email protected]
      

  2.   

    procedure playwave(filelistX:tstrings;curfileX:integer;richeditX,richedity:trichedit;iniX,iniy:string);
    var
      initext:tinifile;
      bh,texte,textc:string;
    begin
      if FileListX.Count<1 then exit;
      form1.MediaPlayer1.FileName :=FileListX.Strings[CurFileX];
      form1.MediaPlayer1.Open;
      richeditX.lines.Clear;
      richedity.lines.clear;
      initext:=Tinifile.Create(ExtractFilePath(Application.ExeName)+inix+'.ini');
      bh:=copy(form1.MediaPlayer1.FileName,1,10);
      texte:=initext.readString('ed',bh,'');
      initext:=Tinifile.Create(ExtractFilePath(Application.ExeName)+iniy+'.ini');
      textc:=initext.readString('cd',bh,'');
      richeditx.lines.text:=texte;
      richedity.lines.text:=textc;
      form1.MediaPlayer1.Play;
    end;
      

  3.   

    inix\iniy  存放中英文的ini文件