Movie

プログラム言語 FreeBasic


音楽やビデオを扱うための関数

関数を持つタブを使う動画の例としては、独自のウィンドウを使わないで、デスクトップ・ウィンドウを使って下さい。 こうすると、例は簡素化できます。
しかし、完全を期すために、ここでは簡単な例として、作成したウインドウの中でビデオを操作するプレーヤーの例を示します。
以下を参照してください。それほど複雑ではないでしょう。


例:

#Include "window9.bi"

Dim Shared As Integer event,mov8,MOV_FLAG
Dim Shared As HWND hwnd
hwnd=OpenWindow("Video",10,10,350,350) : CenterWindow(hwnd)
ButtonGadget(1,10,280,20,20,"X"):GadgetToolTip(1,"STOP")
ButtonGadget(2,40,280,20,20,"|>"):GadgetToolTip(2,"PLAY")
ButtonGadget(3,70,280,20,20,"||"):GadgetToolTip(3,"PAUSE")
ButtonGadget(6,100,280,20,20,"<<"):GadgetToolTip(6,"速度を遅く")
ButtonGadget(7,130,280,20,20,">>"):GadgetToolTip(7,"早送り")
ButtonGadget(8,160,280,20,20,"+"):GadgetToolTip(8,"ファイルを開く") ' + ボタンを押すと、ファイルを開くダイアログが表示されて、動画ファイルを選択できる
ImageGadget(4,6,0,320,240)
TrackBarGadget(5,5,250,320,20,0,10,TBS_NOTICKS )

Sub resize
  Static As integer Width_,height
  If Width_<>WindowWidth(hwnd)-30 Or height<>WindowHeight(hwnd)-110 Then
    Width_=WindowWidth(hwnd)-30 : height=WindowHeight(hwnd)-110
    ResizeGadget(4,,,Width_,height)
    If MOV_FLAG=1 Then
    ResizeMovie(mov8,0,0,width_,height-30)
    endif
    Var resH=WindowHeight(hwnd)-70
    ResizeGadget(1,,resH)
    ResizeGadget(2,,resH)
    ResizeGadget(3,,resH)
    ResizeGadget(5,,resH-30,width_)
    ResizeGadget(6,,resH)
    ResizeGadget(7,,resH)
    ResizeGadget(8,,resH)
  EndIf
  If MOV_FLAG=1 Then
    SetTrackBarPos(5,Int(MovieGetCurrentPosition(mov8)/1000000))
  EndIf
End Sub
SetTimer(hwnd,1,10,Cast(TIMERPROC,@resize))
Do
  event=WaitEvent()
  If Event=EventClose Then Exit Do
  If event=EventGadget Then
    Select case EventNumber
      Case 1 : If mov8 Then stopmovie(mov8)
      Case 2 : If mov8 Then Playmovie(mov8):SetRateMovie(mov8,1)
      Case 3 : If mov8 Then Pausemovie(mov8)
      case 5
        If GetAsyncKeyState(1)<0 Then
          if mov8 Then
            MovieSetPositions(mov8,cast(double,getTrackBarPos(5))*1000000,GetEndPosMovie(mov8) )
          EndIf
        EndIf
      Case 6 : If mov8 Then SetRateMovie(mov8,GetRateMovie(mov8)-0.5)
      Case 7 : If mov8 Then SetRateMovie(mov8,GetRateMovie(mov8)+0.5)
      Case 8
        Var OFR = OpenFileRequester("","C:\Users\haav-stabud\Desktop\","動画ファイル (*.avi, *.mp3, *.wmv, *.wav, *.mp4, *.mp2, *.mp1)"+Chr(0)+"*.avi; *.mp3; *.wmv; *.wav; *.mp4; *.mp2; *.mp1"+Chr(0))
        If OFR<>"" Then
          If mov8 Then
            FreeMovie(mov8)
          EndIf
          mov8=loadmovie(GadgetID(4),OFR,0,0,WindowWidth(hwnd)-30,WindowHeight(hwnd)-110)
          SetTrackBarMaxPos(5,Int(GetEndPosMovie(mov8)/1000000 ))
          Playmovie(mov8):SetRateMovie(mov8,1)
          MOV_FLAG=1
        EndIf
    End Select
  EndIf
Loop
if mov8 then FreeMovie(mov8)


http://mneniya.ucoz.ru/

←リンク元に戻る Window9 トップに戻る FreeBASIC マニュアル トップに戻る
ロシア語オリジナル:https://users.freebasic-portal.de/freebasicru/window9lib/window9.html