プレイリストを作っているのですが・・・

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
mako20
記事: 26
登録日時: 2005年5月31日(火) 01:10
お住まい: 岡山県
連絡する:

プレイリストを作っているのですが・・・

#1 投稿記事 by mako20 »

選択したファイルがプレイリストに追加されたあと、リスト内のファイル名を選ぶとそれを
DirectMusicが再生してくれるのを組んでますが、どうやればいいでしょうか?

ファイルは「OPENFILENAME」構造体から得ています

コード: 全て選択


	Dim ofn As OPENFILENAME
	Dim hFile As HANDLE
	Dim buf[MAX_PATH] As WordPtr
    ZeroMemory(VarPtr(ofn), Len(ofn))
	ofn.lStructSize=Len(ofn)
    ofn.hwndOwner=hMainWnd
	ofn.lpstrInitialDir=".\EPL\"
	ofn.lpstrTitle="オーディオを開く"
    ofn.lpstrFile=buf
	ofn.lpstrFilter=Ex"WAVオーディオ(*.WAV)\0*.wav\0Vorbisオーディオ(*.OGG)\0*.ogg\0"
    ofn.nMaxFile=MAX_PATH
    ofn.Flags = OFN_NONETWORKBUTTON or OFN_READONLY or OFN_ALLOWMULTISELECT or OFN_EXPLORER
	SetDlgItemText(hMainWnd,ID_FNAME,buf)
	hFile=CreateFile(buf,GENERIC_READ,FILE_SHARE_READ,ByVal(0),OPEN_EXISTING or OPEN_ALWAYS,FILE_ATTRIBUTE_READONLY or FILE_FLAG_RANDOM_ACCESS or FILE_FLAG_SEQUENTIAL_SCAN,NULL)
	GetOpenFileName(ofn)
	Dim i As Long
	Dim plStr[MAX_PATH] As Byte
	Dim lvItem As LVITEM
	i=lstrlen(buf)-1
	Do
		If buf Then
			lvItem.mask=LVIF_TEXT or LVIF_PARAM
			lvItem.pszText=buf+i+1
			lvItem.iItem=0
			lvItem.iSubItem=0
			lvItem.lParam=pln+1
			SendDlgItemMessage(hMainWnd,PlayList,LVM_INSERTITEM,0,VarPtr(lvItem))
			Exit Do
		End If
		i=i-1
		If i<0 Then Exit Do
	Loop
	dmA9->Stop()
	dmA9->Load(buf)
	If SendDlgItemMessage(hMainWnd,CheckBox1,BM_GETCHECK,0,0)=BST_CHECKED Then
		dmA9->SetRepeats(&HFFFFFFF)
	End If
	SetDlgItemText(hMainWnd,ID_FNAME,buf)
	dmA9->Play()

ファイルは「OPENFILENAME」構造体から得ています

コード: 全て選択


Sub MainWnd_PlayList_DblClick(ByRef nmListView As NMLISTVIEW)
	Dim buf As Byte
	buf=SendDlgItemMessage(hMainWnd,PlayList,LB_GETTEXT,0,0)
	dmA9_pl->Load(buf)
	If SendDlgItemMessage(hMainWnd,CheckBox1,BM_GETCHECK,0,0)=BST_CHECKED Then
		dmA9_pl->SetRepeats(&HFFFFFFF)
	End If
	SetDlgItemText(hMainWnd,ID_FNAME,buf)
	dmA9_pl->Play()

End Sub

このコードは、Load関数でファイル名を認識する部分がバグになっています

DirectMusicの宣言は別の場所においてありますので宣言済みだけがあります
-------------------------------------------------------
  PlayerEleanore Project
    http://www.zzda.com/eleanore
   mako20
-------------------------------------------------------
HSABP

#2 投稿記事 by HSABP »

DirectMusicは文字コードがUNICODEに変換しないと
エラーを返すと思う
返信する