C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■97065 / 1階層)  XAudio2を用いて曲を再生する方法
□投稿者/ 魔界の仮面弁士 (3021回)-(2021/03/22(Mon) 17:08:02)
No97064 (プログラマー さん) に返信
> 拡張子はMP3, MID, WAVのファイルを対象としております。

XAudio2 は MIDI に対応していません。
MCI を試してみてください。
https://dobon.net/vb/dotnet/programing/playmidifile.html


WAV の再生は可能ですが、それ以外で直接扱える圧縮形式は、
ADPCM / WMA じゃなかったかな…。

MP3 については、SharpDX.MediaFoundation を使うことで
XAudio2 にできそうな情報がありましたが、詳しくは見てないです。
http://sygh.hatenadiary.jp/entry/2015/09/23/174346
https://docs.microsoft.com/ja-jp/windows/win32/medfound/supported-media-formats-in-media-foundation


> XAudio2を利用して音楽ファイルを再生する方法を教えていただけませんか。

とりあえず WAV 版を書いておきます。
ただ、WAV なら My.Computer.Audio.Play という手もあるんですよね。

Public Class Form1
    Private WithEvents xa As SharpDX.XAudio2.XAudio2
    Private WithEvents mstVoice As SharpDX.XAudio2.MasteringVoice
    Private WithEvents srcVoice As SharpDX.XAudio2.SourceVoice = Nothing
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        xa = New SharpDX.XAudio2.XAudio2()
        mstVoice = New SharpDX.XAudio2.MasteringVoice(xa)
    End Sub
    Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
        mstVoice.Dispose()
        srcVoice.Dispose()
        xa.Dispose()
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim bin As Byte() = System.IO.File.ReadAllBytes("C:\Windows\Media\Ring05.wav")
        Dim ss As New SharpDX.Multimedia.SoundStream(New System.IO.MemoryStream(bin))
        Dim buffer As New SharpDX.XAudio2.AudioBuffer(ss)
        srcVoice = New SharpDX.XAudio2.SourceVoice(xa, ss.Format, True)
        srcVoice.SubmitSourceBuffer(buffer, ss.DecodedPacketsInfo())
        srcVoice.Start()
    End Sub
End Class

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←XAudio2を用いて曲を再生する方法 /プログラマー →Re[2]: XAudio2を用いて曲を再生する方法 /プログラマー
 
上記関連ツリー

XAudio2を用いて曲を再生する方法 / プログラマー (21/03/22(Mon) 15:32) #97064
XAudio2を用いて曲を再生する方法 / 魔界の仮面弁士 (21/03/22(Mon) 17:08) #97065 ←Now
  └ Re[2]: XAudio2を用いて曲を再生する方法 / プログラマー (21/03/22(Mon) 22:09) #97066
    └ Re[3]: XAudio2を用いて曲を再生する方法 / 魔界の仮面弁士 (21/03/29(Mon) 01:37) #97108
      └ Re[4]: XAudio2を用いて曲を再生する方法 / プログラマー (21/04/05(Mon) 18:24) #97141 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信