Đối với người dùng từ NAudio 1.6 trở lên, vui lòng không sử dụng mã trong câu trả lời được chấp nhận ban đầu. Bạn không cần phải thêm WaveFormatConversionStream
hoặc BlockAlignReductionStream
và bạn nên tránh sử dụng WaveOut
với hàm gọi lại (WaveOutEvent
là thích hợp hơn nếu bạn không ở trong ứng dụng WinForms hoặc WPF). Ngoài ra, trừ khi bạn muốn chặn phát lại, bạn sẽ không thường ngủ cho đến khi kết thúc âm thanh. Chỉ cần đăng ký sự kiện PlaybackStopped
của WaveOut
.
Đoạn mã dưới đây sẽ chỉ làm việc tốt để đóng một MP3 trong NAudio:
reader = new Mp3FileReader("test.mp3");
var waveOut = new WaveOut(); // or WaveOutEvent()
waveOut.Init(reader);
waveOut.Play();
Nguồn
2013-09-09 14:38:58
này không hoạt động. "InvalidParameter gọi acmStreamPrepareHeader" – Rookian
Tôi vừa tải xuống phiên bản mới nhất của NAudio (http://www.codeplex.com/naudio) và đã thử nghiệm mã này bằng mp3 trên máy tính của mình. Nó làm việc cho tôi. –
Bạn có môi trường 64 bit không? Tôi đã biên dịch lại các giải pháp bằng cách sử dụng x64, chế độ phát hành và thay đổi nền tảng. Net từ .NET 2.0 đến 3.5 ... có lẽ vì điều này tôi nhận được các lỗi? – Rookian