[Share Code] Một số xử lí cơ bản với File MP3
Trang 1 trong tổng số 1 trang
[Share Code] Một số xử lí cơ bản với File MP3
Đối với audio, C# có hộ trợ cho chúng ta 1 namespace là System.Media;
nhưng các class trong namespace này còn rất hạn chế và chỉ gỗ trợ cho file wav.
vì vậy, mình đã tìm hiểu một số thao tác cơ bản với file mp3 như play một file mp3, nối 2 file mp3 lại với nhau.
để làm được việc này, mình đã sử dụng một pack là NAudio.
các bạn có thể dễ dàng tìm thấy pack này trên visual studio bằng cách gõ tên nó vào mục tìm kiếm package.
đây là một dự án mã nguồn mở, được một nhóm người làm nên. hoàn toàn miễn phí.
suy nghĩ của mình là cái gì họ đã làm dùm mình rồi thì nếu không rảnh, hãy sử dụng cái có sẵn để tiết kiệm thời gian. để dành thời gian đó để làm việc khác, những việc mới mẻ và có tính sáng tạo cao hơn, những việc bạn đang quan tâm.
Code dưới chỉ là code demo cho file mp3, có thể vẫn còn lỗi và trong pack đó còn rất rất nhiều thứ nữa, mình chỉ gợi ý cho các bạn 1 hướng thôi, còn lại là việc của các bạn.
riêng vấn đề playfile của trình này có chất lượng khá kém, nếu không thích, các bạn có thể dùng wmp và ẩn wmp trên form đi để play thay cho code phía dưới.
Nối 2 file mp3:
Class player
nhưng các class trong namespace này còn rất hạn chế và chỉ gỗ trợ cho file wav.
vì vậy, mình đã tìm hiểu một số thao tác cơ bản với file mp3 như play một file mp3, nối 2 file mp3 lại với nhau.
để làm được việc này, mình đã sử dụng một pack là NAudio.
các bạn có thể dễ dàng tìm thấy pack này trên visual studio bằng cách gõ tên nó vào mục tìm kiếm package.
đây là một dự án mã nguồn mở, được một nhóm người làm nên. hoàn toàn miễn phí.
suy nghĩ của mình là cái gì họ đã làm dùm mình rồi thì nếu không rảnh, hãy sử dụng cái có sẵn để tiết kiệm thời gian. để dành thời gian đó để làm việc khác, những việc mới mẻ và có tính sáng tạo cao hơn, những việc bạn đang quan tâm.
Code dưới chỉ là code demo cho file mp3, có thể vẫn còn lỗi và trong pack đó còn rất rất nhiều thứ nữa, mình chỉ gợi ý cho các bạn 1 hướng thôi, còn lại là việc của các bạn.
riêng vấn đề playfile của trình này có chất lượng khá kém, nếu không thích, các bạn có thể dùng wmp và ẩn wmp trên form đi để play thay cho code phía dưới.
Nối 2 file mp3:
- Code:
public static void Combine( Stream output, params string[] inputFiles)
{
foreach (string file in inputFiles)
{
Mp3FileReader reader = new Mp3FileReader(file);
if ((output.Position == 0) && (reader.Id3v2Tag != null))
{
output.Write(reader.Id3v2Tag.RawData, 0, reader.Id3v2Tag.RawData.Length);
}
Mp3Frame frame;
while ((frame = reader.ReadNextFrame()) != null)
{
output.Write(frame.RawData, 0, frame.RawData.Length);
}
}
}
Class player
- Code:
public class Soundplayer
{
private NAudio.Wave.BlockAlignReductionStream stream = null;
private NAudio.Wave.DirectSoundOut output = new NAudio.Wave.DirectSoundOut();
private void Disposewave()
{
if (output.PlaybackState == NAudio.Wave.PlaybackState.Playing)
{
output.Stop();
}
output.Dispose();
output = null;
if (stream != null)
{
stream.Dispose();
stream = null;
}
}
public void PlayFile(string Path)
{
NAudio.Wave.WaveStream pcm = NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(new NAudio.Wave.Mp3FileReader(Path));
stream = new NAudio.Wave.BlockAlignReductionStream(pcm);
output.Init(stream);
output.Play();
}
public void PauseAndPlay()
{
if (output.PlaybackState == NAudio.Wave.PlaybackState.Playing)
{
output.Pause();
}
else output.Play();
}
}
lekhasy- Tổng số bài gửi : 3
Join date : 05/03/2015
Similar topics
» Thảo luận Bài 8
» Thực hành điều khiển VnVoice
» [Share Code] Tặng các bạn một custom FormBorderstyle để đổi gió cho ứng dụng.
» Hướng dẫn giùm mình cách làm bài tập MenuStrip (bài trong file code í)
» các bạn có thể tham khảo code này mình Viết chương trình nhập vào một tháng trong năm (1<= Tháng <=12), cho biết tháng đó là mùa gì. co luu vao file text
» Thực hành điều khiển VnVoice
» [Share Code] Tặng các bạn một custom FormBorderstyle để đổi gió cho ứng dụng.
» Hướng dẫn giùm mình cách làm bài tập MenuStrip (bài trong file code í)
» các bạn có thể tham khảo code này mình Viết chương trình nhập vào một tháng trong năm (1<= Tháng <=12), cho biết tháng đó là mùa gì. co luu vao file text
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết