2018/9/3 更新
Discordサーバー建てました!
質問等があればこちらでどうぞ。
色々ややこしかったのでまとめました。
注意書き
必要なライブラリ・ソフトウェア
- libsodium.dll (libsodium-1.0.12-msvc.zip)
- opus.dll (opusfile-0.7-win32.zip)
- FFmpeg (ffmpeg-3.2.4-win32-static.zip)
が必要なのでそれぞれダウンロードしなければいけません。
カッコ内に今回使ったファイルを記載しています。
1. libsodium.dllのダウンロード
- ここから最新版の
libsodium-X.Y.Z-msvc.zip
(X.Y.Zはバージョン情報)をダウンロードする。 - ダウンロードしたzipファイルから、
Win32/Release/v120/dynamic/libsodium.dll
を抜き出して、Botのプログラムと同じフォルダに展開する。
2. opus.dllのダウンロード
ここから最新版の最新版では動かないようなので、ここからopusfile
をダウンロードする。
opusfile
の0.7をダウンロードする。- ダウンロードしたzipファイルから、
libopus-0.dll
を抜き出して、Botのプログラムと同じフォルダに展開する。 libopus-0.dll
からopus.dll
にファイル名を変更する。
3. FFmpegのダウンロード
- ここから、安定版をダウンロードする。
- 適当なフォルダ(今回は
C:\ffmpeg
)に展開する。 C:\ffmpeg\bin
の環境変数(PATH)を通す。- cmdで
ffmpeg -version
を打ってみて、PATHが通っていることを確認する。
4. テスト用のプログラムのダウンロード・編集
- ここから
voice_send.rb
をダウンロードしてくる。(Rawボタンを右クリックして名前を付けて保存)。 - voice_send.rbの6行目に以下のコードを加える。
::RBNACL_LIBSODIUM_GEM_LIB_PATH = 'libsodium.dll'
- voice_send.rbの9行目のtoken、client_idの部分を自分のBotのものに書き換える。
- voice_send.rbの34行目に再生したいmp3ファイルを指定する
voice_bot.play_file('data/fuwafuwa_time.mp3')
- cmdで実行する。
5. 動作テスト
- Botが追加されているサーバーでボイスチャンネルに入る。
- チャットで
!connect
コマンドを打って、Botがボイスチャンネルに入ったことを確認する。 - チャットで
!play_mp3
コマンドを打って、音声が聞こえることを確認する。
以上、discordrbで音声機能を使う方法でした。
2017年6月13日 at 1:45 午前
初めまして。よろしければ一つお聞きしたい事があります。
全くプログラミングを触ったことのない初心者なのですが、様々なコードのサンプルを見てなんとかdiscord内で音声を再生するbotを作成できました。ですが、
単一のrb内で複数の音声ファイルを指定し流す、saysoundスクリプトのようなものを作成する為に必要な事が調べようにも全く分かりません。
単純にコードを複製して書き込めばいいのかもしれませんが、コード一つごとのつなぎの文が分かりません。
どのようにすればいいのか お分かりになるようでしたらご教授願いたいです。
いいねいいね
2017年6月17日 at 12:11 午前
色々試した結果、同時に複数の音声ファイルを再生することはできませんでした。
saysoundというものが、
どのようなスクリプトなのか詳しくないので、参考にならないかもしれませんが、
SoXを利用すれば、複数の音声ファイルを1つのファイルにミックスすることができるので、
擬似的にはできるんじゃないでしょうか?
SoXのダウンロード先
https://sourceforge.net/projects/sox/files/latest/download?source=files
そのままだとmp3が読み込めないので、
以下のファイルをダウンロード後、sox.exeと同じフォルダに展開してください。
https://app.box.com/s/tzn5ohyh90viedu3u90w2l2pmp2bl41t
http://imgur.com/a/JJhT9
いいねいいね
2017年9月22日 at 9:13 午前
返信の確認がずいぶん遅くなってしまいました。すみません。
ご丁寧な返信、ありがとうございました。
そちらを使っていろいろ試してみたいと思います。
いいねいいね
2017年10月21日 at 10:17 午後
Macの場合 libsodium-~~~-msvc.dllをどれでやればよろしいでしょうか..
いいねいいね
2017年10月21日 at 10:29 午後
LinuxやMacではパッケージ管理システムからインストールできるようです。
こちらに書いてありますよ。
https://github.com/meew0/discordrb/wiki/Installing-libsodium
いいねいいね
2017年10月25日 at 7:55 午後
あー…Sierraからになると、brewの権限が少し下がるんです…
brewはgithubからがほとんどなので、がんばります
いいねいいね
2017年11月23日 at 10:56 午前
すみません。一つお聞きしたいことがあります
botを起動できたのはいいのですが!connectでボイスチャットへ入れると以下のエラーが起き音楽が再生されません。
Exception: #
対処法を教えてください。
いいねいいね: 1人
2017年11月23日 at 10:58 午前
Exception: # RuntimeError: RbNaCl is unavailable – unable to create voice bot! Please read https://github.com/meew0/discordrb/wiki/Installing-libsodium
です。
いいねいいね
2017年11月27日 at 1:58 午前
Botの起動時(!connectをする前)にlibsodium not available!とエラーは出ますでしょうか?
もし、出る場合はlibsodium.dllの読み込みが上手くいかない場合のエラーだと思われます。
・Botと同じフォルダにlibsodium.dllを置いたことを確認する
・::RBNACL_LIBSODIUM_GEM_LIB_PATH = ‘libsodium.dll’が記述してあるかを確認する
以上の2つを確認してください
出ない場合は、
gem uninstall rbnacl
gem install rbnacl
でRbNaClをインストールし直してみて下さい。
もし、それでも動かなければ
仮想マシン上にLinuxを導入して、そちらでBotを動かすのも良いかもしれません。
いいねいいね