Я пытаюсь использовать lame_enc.dll на своем сайте C # .NET, и я застрял.
Я работаю с: .NET Framework 3.5 / Visual Web Developer 2008 Express Edition / (Что еще нужно знать?)
Первым делом я получил код от C # MP3 Compressor в The Code Project. Одна вещь, которую я отметил, - то, что этот проект / почта с января 2004 (так, это старо)
Я поместил папки "yeti.mmedia" и "yeti.mp3" в свой каталог "App_Code" и удалил каталоги "Bin" и "obj" внутри каждого из них. Затем я попытался построить проект. Когда я получил ошибки, я исключил из проекта следующие файлы:
- yeti.mmedia / AssemblyInfo.cs
- yeti.mmedia / EditWaveWriter.cs
- yeti.mmedia / EditWaveWriter.resx
- yeti.mmedia / InFormatEdit.cs
- yeti.mmedia / InFormatEdit.resx
- yeti.mmedia / NumericTextBox.cs
- yeti.mmedia / NumericTextBox.resx
- yeti.mmedia / Win32Functions.cs
- yeti.mp3 / AssemblyInfo.cs
- yeti.mp3 / EditMp3Writer.cs
- yeti.mp3 / EditMp3Writer.resx
Мне кажется, это файлы кода, связанные с пользовательским интерфейсом Windows (которые мне не нужны, я делаю это в Интернете).
Я также поместил файл "lame_enc.dll" в каталог Bin.
Я создал тестовую страницу на основе примера на странице, указанной выше:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using WaveLib;
using Yeti.MMedia;
using Yeti.MMedia.Mp3;
public partial class Documents : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
WaveStream InStr = new WaveStream(Server.MapPath(@"Temp/SomeFile.wav"));
try {
Mp3Writer writer = new Mp3Writer(new FileStream(Server.MapPath(@"Temp/SomeFile.mp3"), FileMode.Create), InStr.Format);
try {
byte[] buff = new byte[writer.OptimalBufferSize];
int read = 0;
while ((read = InStr.Read(buff, 0, buff.Length)) > 0) {
writer.Write(buff, 0, read);
}
}
finally {
writer.Close();
}
}
finally {
InStr.Close();
}
}
}
Итак, я загружаю эту страницу и получаю ошибку:
Невозможно загрузить DLL 'Lame_enc.dll': указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)
(я не могу добавить DLL в качестве ссылки в моем проекте, потому что там написано "... Это не COM-компонент.") Я также попытался получить последнюю и самую лучшую (lame3.98.4) dll и имел те же проблемы. Итак, я предполагаю, что использование этого кода на веб-сайте отличается от проекта другого типа. Что это такое, я не знаю.