2017-01-24 8 views
1

以下を参照してください。バッチ再生の音楽ファイルが長すぎます。現在、サシャディーのコードを使用して、これは私のコードです

@echo off 
set "file=TobuMusic.mp3" 
(echo Set Sound = CreateObject("WMPlayer.OCX.7"^) 
    echo Sound.URL = "%file%" 
    echo Sound.Controls.play 
    echo do while Sound.currentmedia.duration = 0 
    echo wscript.sleep 100 
    echo loop 
    echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000) >sound.vbs 
start /min sound.vbs 

私はオンライン音楽プロデューサー7obu(東武)から曲をダウンロードした、と私はバッチファイルで曲を再生したいです。このコードは多くの助けになりましたが、私はどのように正確に10秒長くすることができるのか分かりません。

どうすれば実現できますか?

+5

多分、コードを取得した場所へのリンクを参照することができます。また、バッチファイルを使用してVBScriptファイルを作成してVBScriptを実行する理由を理解していない。なぜVBScriptですべてをやるのではないのですか? – Squashman

+1

'Sound'オブジェクトの状態をチェックし、状態が' 1'のときは強制的に終了する必要があります。 [**ここにjscript **の例があります](https://github.com/npocmaka/batch.scripts/blob/master/hybrids/jscript/mediarunner.bat)、あなたはそれをvbscriptに翻訳できることを望みます。 [その他の方法](https://www.reddit.com/r/Batch/comments/45jgbh/how_to_play_musicsounds_in_batch/)コマンドラインからサウンドを再生します。 – npocmaka

+0

私はOPがこの投稿について話していると思います:[バッチファイルで見えない音楽を再生しますか?](http://stackoverflow.com/a/23316395) – aschipfl

答えて

0

どのように正確に10秒長くすることができないのか分かりません。

は、単純に10秒間スリープ状態にあなたのVBスクリプトを強制:代わりに

echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000) >sound.vbs 
の:代わりに バッチスクリプト

wscript.sleep (int(Sound.currentmedia.duration)+1)*1000 

使用

iMaxDuration = Sound.Currentmedia.Duration + 0.5 
If iMaxDuration > 10 Then iMaxDuration = 10 
Wscript.Sleep Int(iMaxDuration * 1000) 
Sound.Close 

use

echo iMaxDuration = Sound.Currentmedia.Duration + 0.5 
echo If iMaxDuration ^> 10 Then iMaxDuration = 10 
echo Wscript.Sleep Int(iMaxDuration * 1000 ^) 
echo Sound.Close) >sound.vbs 
+0

ありがとう、@ジョセフ。私のコードを修正しました。 – spokify

+0

@bextem私の喜び。あなたの問題を解決したことがわかったら、[回答を受け入れる](http://meta.stackoverflow.com/a/5235)を検討してください。 – JosefZ

関連する問題