#author("2023-11-11T07:34:26+09:00","default:post","post")
音楽ファイルの再生

----
#contents
----
~

*音楽ファイルの再生 [#zd3d4ee2]

音楽ファイルを再生するのは里々単体では実現できないのでSAORIを使用して実現します、ここではMIY氏作dsaudio.dllを使用しファイルドロップで再生、キーボードのsキーを押すと再生停止するだけのサンプルを解説します。ファイル名に#とか全角()とか含むと誤動作するとか(※このサンプルでは問題ないみたいです、プレイリストとか作ろうとしてファイル名を変数に入れて扱おうとすると死ねます)拡張子が小文字以外再生できないとかありますがここではそこまで対応していません。 

+%%[[MIY氏のdsaudio.dll>http://es.nsf.jp/index.php?wrks=0]]%%をダウンロード・解凍してghost\master\saoriフォルダに入れます(2021年8月13日現在、サイトが閉鎖されているためダウンロードできません。)
+gohost\master\saori_config.txtファイルに dsaudio,saori/dsaudio.dll を追加します
+下記文を適当な辞書に追加します、(*hwndとか、*OnFileDrop?2とか既に使用済みの場合は修正して下さい)

 *hwnd
 (dsaudio,hwnd,(R0))
 
 *OnFileDrop2
 $,【タブ】(バイト値,2)
 $引数区切り追加【タブ】(,)
 >複数ファイルがドロップ【タブ】(split(,)(R0)(,)(バイト値,1))>=2
 >OnMusicFileDrop【タブ】(call(,)音楽ファイル判定式(,)(R0))
 :処理できないファイルの種類です
 
 *複数ファイルがドロップ
 :一個づつでないと処理できません
 
 @音楽ファイル判定式
 (compare_tail(,)(A0)(,).mp3)||φ
 (compare_tail(,)(A0)(,).mid)||φ
 (compare_tail(,)(A0)(,).wma)||φ
 (compare_tail(,)(A0)(,).wav)||φ
 (compare_tail(,)(A0)(,).ogg)||φ
 (compare_tail(,)(A0)(,).au)
 
 *OnMusicFileDrop
 (nop,
  (dsaudio(,)load(,)(R0))
  (dsaudio,play)
 )
 
 #*OnKeyPress
 #>(R0)が押された
 
 *sが押された
 (nop,(dsaudio,stop)) 

補足:MIY氏が日記上で公開(2009/04/08)されているdsxplayerのbeta8で中に入っているdsx.dllをdsaudio.dllにリネームして使うとmp4、flv動画の音声のみ再生もできます、その場合上記の音楽ファイル判定式に拡張子追加して下さい。~
~
''外部リンク''~
ソース公開してるプレイリスト型プレイヤー:[[ひなくろ置き場(avery氏):http://avery.webcrow.jp/script/002.html]]
%%ソース公開してるプレイリスト型プレイヤー:[[ひなくろ置き場(avery氏):http://avery.webcrow.jp/script/002.html]]%% ※サイト消失

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS