C#播放MP3/FLAC

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using NAudio.Wave;
using NAudio.Flac;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

/// <summary>
/// 这个axWindowsMediaPlayer是工具箱--右键--选择项--com--选择windows media player控件后就会出现在组件里,拖到项目中就是了
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer1.URL = @"E:\KuGou\Music\苏谭谭 - 游山恋.mp3";
axWindowsMediaPlayer1.Ctlcontrols.play();
}

private void button2_Click(object sender, EventArgs e)
{
string files = @"E:\KuGou\Music\童安格 - 其实你不懂我的心.flac";
PlayFlac(files);
}
/// <summary>
///c#播放.flac音乐在C#中播放FLAC音乐文件,
///你可以使用第三方库如NAudio。
///以下是使用NAudio播放FLAC音乐文件的示例代码:
///首先,通过NuGet安装NAudio库。然后,使用以下代码来播放FLAC文件:
/// 确保你的项目中已经引用了NAudio.Flac这个扩展库。
/// 如果没有,你可以通过NuGet安装它。
/// 这段代码中,FlacReader类用于读取FLAC文件,
/// 而WaveOutEvent类用于输出音频到音频设备。
/// PlaybackState.Playing 用于检查播放状态,并且在播放结束时进入休眠状态。
/// </summary>
/// <param name="fileName"></param>
static void PlayFlac(string fileName)
{
using (var reader = new FlacReader(fileName))//读取FLAC文件
{
using (var waveOut = new WaveOutEvent())//将音频输出到音频设备
{
waveOut.Init(reader);
waveOut.Play();
while (waveOut.PlaybackState == PlaybackState.Playing)//检查播放状态
{
System.Threading.Thread.Sleep(100);//播放结束进入休眠状态
}
}
}
}
}
}

posted @ 2024-07-30 19:32  techNote  阅读(64)  评论(0编辑  收藏  举报