LoginSignup
3
1

More than 3 years have passed since last update.

rubyでミュージックプレイヤーを作る

Last updated at Posted at 2019-11-14

ミュージックプレイヤーと言われると、mp3を再生するものだと思いますよね
初心者がかんがえた簡単プログラムなので、mp3は再生できません、dxrubyを使用します。
改善方法があれば、教えて下さい。
必要な機能は、dxrubyです。
gem install dxrubyを実行してください。

musiplayer.rb
require 'dxruby' #dxrubyを呼ぶ

Window.width = 0 #windowのサイズを0に設定
Window.height = 0 #windowのサイズを0に設定
Window.caption = '再生タブ' #タブの名前を再生タブに変える
sound = "" #soundの値を初期化
play = "" #playの値を初期化
loop do
puts"タイプを入力してね\nhelpと入力してね!"
type = gets.chomp #タイプを取得する
if type == "end" #タイプがendなら、exitする処理へ行く
    exit
elsif type == "stop" #タイプがstopなら、音楽を止める処理へ行く
    if play == "1" #プレイしてないのに、stopするとエラーが出てソフトがエラーで落ちるのでそれを防止
        sound.stop #停止
        play = "" #playを初期化する
    else
        puts "何も再生されていません。" #エラー表示
    end
else
    if type == "" #タイプが入力されてないときの処理
        puts "何も入力してないみたいだけど...?"
    elsif type == "play" #タイプがplayだったときの処理
        puts "ファイルのパスを入力"
        path = gets.chomp #ファイルのパスを取得する
        kekka = File.exist?("#{path}") #ファイルが存在しているかを調べる
        if kekka == true
            if play == "1"
                sound.stop
            end
        sound = Sound.new("#{path}")
        sound.loopCount=-1 #永遠に音楽をloopする
        sound.set_volume(300)
        sound.play
        play = "1"
        else
            puts "エラーが発生しました。 今入力したファイルは存在していますか?"
        end
    elsif type == "help"
        moto = "play = 再生します、パスを要求されます。\nstop = 再生時に実行すると、再生中の音楽を停止します。\nend = ソフトを終了します。\n"
        string = moto
        loop do
        print string.chr
        moto = string.chr
        string.sub!(/#{moto}/,'')
        if string.size == 0
        break
        end
        sleep 0.1
        end        
    else
        puts"そのタイプは存在してないみたいだけど...?"
    end
end
end
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1