質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Q&A

解決済

1回答

1909閲覧

オンライン上の音声を再生

nabesi

総合スコア13

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

0グッド

1クリップ

投稿2018/12/17 06:37

編集2018/12/17 12:49

自分用にWindowsフォームアプリケーションでデスクトップの英単語帳を作成しようと思っており、その中に音声の再生をする機能を付けたいと思っています。

音声をひとつひとつ作成したりダウンロードするのは無理なので下のような↓ 英単語サイトの音をそのまま再生できるのか、またその方法を教えて頂きたいです。使用言語はC#です。よろしくお願いします。
イメージ説明

回答をヒントに解決したので詳細を残します。
ボタンをクリックするとサウンドが再生されるようにしました。MP3ファイルとwaveファイルを再生させる2種類の方法です。現時点では連続再生させるとエラーが出ていますが、そのまま書いています。

waveファイルを再生させる場合のスクリプトと回答以外に参考としたサイト↓
方法:Windowsフォーム内でサウンドを非同期的に読み込む

C#

1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Linq; 7using System.Media; 8using System.Text; 9using System.Threading.Tasks; 10using System.Windows.Forms; 11using System.Net; 12using System.IO; 13 14namespace WordBook 15{ 16 17 public partial class Home : Form 18 { 19 public Home() 20 { 21 InitializeComponent(); 22 this.Player.LoadCompleted += new AsyncCompletedEventHandler(Player_LoadCompleted); 23 } 24 25 SoundPlayer Player = new SoundPlayer(); 26 //ボタンクリックでサウンド実行 27 private void button2_Click(object sender, EventArgs e) 28 { 29 this.LoadAsyncSound(); 30 } 31 //サウンドの取得と読み込み 32 public void LoadAsyncSound() 33 { 34 try 35 { 36 //音源先のURLを指定(右クリックして「リンクのアドレスをコピー」) 37 this.Player.SoundLocation = "https://maoudamashii.jokersounds.com/music/se/wav/se_maoudamashii_chime14.wav"; 38 this.Player.LoadAsync(); 39 } 40 catch (Exception ex) 41 { 42 MessageBox.Show(ex.Message, "Error loading sound"); 43 } 44 } 45 // サウンドの再生 46 void Player_LoadCompleted(object sender, AsyncCompletedEventArgs e) 47 { 48 if (Player.IsLoadCompleted) 49 { 50 try 51 { 52 this.Player.Play(); 53 } 54 catch (Exception ex) 55 { 56 MessageBox.Show(ex.Message, "Error playing sound"); 57 } 58 } 59 } 60 } 61}

Mp3ファイルは上記方法で再生ができなかったので、下記方法で再生する↓
MIDI,MP3などの音楽ファイルを再生する

C#

1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Linq; 7using System.Media; 8using System.Text; 9using System.Threading.Tasks; 10using System.Windows.Forms; 11using System.Net; 12using System.IO; 13 14namespace WordBook 15{ 16 17 public partial class Home : Form 18 { 19 [System.Runtime.InteropServices.DllImport("winmm.dll", 20 CharSet = System.Runtime.InteropServices.CharSet.Auto)] 21 private static extern int mciSendString(string command, 22 System.Text.StringBuilder buffer, int bufferSize, IntPtr hwndCallback); 23 24 private string aliasName = "MediaFile"; 25 26 public Home() 27 { 28 InitializeComponent(); 29 } 30 31 //再生ボタン 32 private void button2_Click(object sender, EventArgs e) 33 { 34 //再生するファイル名  ここに音源のUrlをいれる 35 string fileName = "http://www.talkenglish.com/audio871/AudioTE1/E01/sentence/E001S1.mp3"; 36 37 string cmd; 38 //ファイルを開く 39 cmd = "open \"" + fileName + "\" alias " + aliasName; 40 if (mciSendString(cmd, null, 0, IntPtr.Zero) != 0) 41 return; 42 //再生する 43 cmd = "play " + aliasName; 44 mciSendString(cmd, null, 0, IntPtr.Zero); 45 } 46 //停止ボタン 47 private void button3_Click(object sender, EventArgs e) 48 { 49 string cmd; 50 //停止する 51 cmd = "stop " + aliasName; 52 mciSendString(cmd, null, 0, IntPtr.Zero); 53 //閉じる 54 cmd = "close " + aliasName; 55 mciSendString(cmd, null, 0, IntPtr.Zero); 56 } 57 } 58}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

その音声ファイルがHTTP経由でDLできるようなものであれば、
C#でファイルをダウンロードしてから再生すればよいです。

ファイルをダウンロードし保存する
https://dobon.net/vb/dotnet/internet/downloadfile.html#downloadfileasync

方法 : Windows フォームからサウンドを再生する
https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/controls/how-to-play-a-sound-from-a-windows-form

投稿2018/12/17 07:40

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nabesi

2018/12/17 10:05

ご回答ありがとうございます。 リンク先を見ると多分できそうです。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問