☞   

 

ole media player 활용에 대한 자료가 많이 부족하여 저도 여기저기 많이 돌아다니다가

몸으로 부딪혀보고 하다가 이렇게 짧은 지식이나마 공유하고자 이렇게 올려봅니다.

1. insert control로 windows media player를 추가한다.

간단하게 이렇게 화면을 디자인했습니다 ㅎㅎ

 

 

 

2. 목록 불러오기

   미리 text파일로 목록들을 넣어 놓고 저장. 그 파일을 불러와서 데이터 윈도우에 Import 시킵니다.

   다른 방법으로 하셔도 됩니다.

 

   Script 내용

string docname, named
integer value
value = GetFileOpenName("Select File",  &
        docname, named, "txt", "Text Files (*.txt))
if (IsNull(docname)) then return
if (value = 1) then
dw_1.importfile(docname)
dw_1.setfocus()
end if

 

text파일 내용은 아래처럼 만들었습니다.

   e:\MP3\01. Intro - 모두 다 소리쳐 - 빅뱅(Bigbang) - Remember.mp3

   e:\MP3\02. 오,아,오 - 빅뱅(Bigbang) - Remember.mp3

   e:\MP3\03. 붉은 노을 - 빅뱅(Bigbang) - Remember.mp3

 

3. 시작하기

if dw_1.rowcount() = 0 then
 messagebox('알림','연주 할 앨범을 선택하세요 ! ! ! ! !')
 return
end if

if dw_1.getrow() = 0 then
 play_row = 1
else
 play_row = dw_1.getrow()
end if

DW_1.SELECTROW(0,FALSE)
DW_1.SELECTROW(play_row,TRUE)
dw_1.scrolltorow(play_row)
sle_1.text = dw_1.object.filelist[play_row]
ole_1.object.Controls.play()

//실행할 파일

ole_1.object.url = sle_1.text

 

4. 정지하기

//정지

 ole_1.object.Controls.stop()

 

//일시정지

// ole_1.object.Controls.pause()

5. 다음 곡으로 자동으로 넘어가기

ole media player의 Event에 보시면 Playstatechange() 이라고 있습니다.

NewState에 따라 처리하는 방식으로 했습니다.

endofstream()이나 Newstream()으로는 전혀 처리가 안되더라구요 ㅜㅜ

 

Newstate에 대하여서는 다 확인은 안해봤습니다

참조하세요^^

1 : 노래를 정상 혹은 비정상적으로 정지를 시킬때 발생합니다.

3 : 노래가 연주(재생)둥 일때 발생합니다.

8 : 노래의 연주가 정상적으로 종료되었을때 발생합니다.

9 : 스트림이 시작점 위치로 왔다는 의미 갔습니다.

 

자동으로 넘어갈때 Newstate의 옵션을 보면

8 -> 9로 넘어가는 것을 확인했습니다. ㅎㅎ

 

이것 때문에 고생많이 했습니다^^

 

//Playstatechange() script

If NewState = 9 and OldState = 8 Then
 if dw_1.rowcount() = 0 then
  messagebox('알림','연주 할 앨범을 선택하세요 ! ! ! ! !')
  return
 end if
 
  play_row++
  if play_row > dw_1.rowcount() then
   play_row = 1
  end if
  DW_1.SELECTROW(0,FALSE)
  DW_1.SELECTROW(play_row,TRUE)
  dw_1.scrolltorow(play_row)
  sle_1.text = dw_3.object.filelist[play_row]
  ole_1.object.url = sle_1.text
  ole_1.object.Controls.play()
  return
end if

//옵션체크하기위함

OldState = NewState

 

6. Instance 내용

long play_row, OldState

 

7. 기타 옵션

   - 볼륨 조절

      ole_1.object.settings.volume=100

 

이상 두서없이 제가 아는 내용에서 정리를 해보았습니다.

 

여러분께 도움이 되셨는지 모르겠습니다^^

Posted by 농부지기
,