Проблема с event'ами в Web Service
От: cheaterx  
Дата: 22.07.08 08:42
Оценка:
Пишу Web Service, который в итоге должен микшировать несколько wav-файлов в один mp3. Но проблемы появились уже на начальном этапе, дело в том что для микширования я использую сторонний компонент Audio Sound Editor (он отлично работает токо под Windows Application), я же хочу извратится и заюзать его под Веб-сервис (не уверен что это вообще возможно). Так вот, суть проблемы в том, что не обрабатываются события SoundLoadingStarted и SoundLoadingDone после вызова метода LoadSound, они просто игнорируются как будто бы их никто не объявлял

Выкладываю свой клас веб-сервиса:

public class Service : System.Web.Services.WebService
{
    private System.Windows.Forms.Form newfrm;
    private AudioSoundEditor.AudioSoundEditor audioSoundEditor1;
    public string str = "";

    public Service ()
    {
        InitializeComponent();
    }

    public void InitializeComponent()
    {
        this.newfrm = new System.Windows.Forms.Form();
        this.audioSoundEditor1 = new AudioSoundEditor.AudioSoundEditor();
        // 
        // audioSoundEditor1
        // 
        this.audioSoundEditor1.AutoSize = true;
        this.audioSoundEditor1.Location = new System.Drawing.Point(0, 0);
        this.audioSoundEditor1.Name = "audioSoundEditor1";
        this.audioSoundEditor1.Size = new System.Drawing.Size(48, 48);
        this.audioSoundEditor1.TabIndex = 0;
        this.audioSoundEditor1.SoundLoadingStarted += new AudioSoundEditor.AudioSoundEditor.EventHandler(this.audioSoundEditor1_SoundLoadingStarted);
        this.audioSoundEditor1.SoundLoadingDone += new AudioSoundEditor.AudioSoundEditor.SoundLoadingDoneEventHandler(this.audioSoundEditor1_SoundLoadingDone);
        // 
        // newfrm
        // 
        this.newfrm.ClientSize = new System.Drawing.Size(292, 266);
        this.newfrm.Location = new System.Drawing.Point(110, 145);
        this.newfrm.Name = "newfrm";
        this.newfrm.Visible = false;
        this.newfrm.Controls.Add(this.audioSoundEditor1);
    }

    public void audioSoundEditor1_SoundLoadingStarted(object sender, EventArgs e)
    {
        str += "Start Sound Loading";
    }

    public void audioSoundEditor1_SoundLoadingDone(object sender, SoundLoadingDoneEventArgs e)
    {
        str += "End Sound Loading";
    }

    [WebMethod]
    public string Run()
    {
        audioSoundEditor1.InitEditor();
        audioSoundEditor1.CloseSound();
        string myfile = @"D:\\voice\\02D3B4FC-0713-DD11-9E10-00145E6E07B4.wav";
        audioSoundEditor1.SetLoadingMode(enumLoadingModes.LOAD_MODE_NEW);
        audioSoundEditor1.LoadSound(myfile);
        return str;
    }
}


Может кто сталкивался с подобной задачей или имеет другое решение, помогите плиззз, уже вообще замучился!
Re: Проблема с event'ами в Web Service
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.07.08 08:44
Оценка:
Здравствуйте, cheaterx, Вы писали:

C>Так вот, суть проблемы в том, что не обрабатываются события SoundLoadingStarted и SoundLoadingDone после вызова метода LoadSound


При вызове методов веб-сервиса по умолчанию экземпляр класса сервиса создается при каждом вызове.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[2]: Проблема с event'ами в Web Service
От: cheaterx  
Дата: 22.07.08 08:53
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>При вызове методов веб-сервиса по умолчанию экземпляр класса сервиса создается при каждом вызове.


Так как все таки можно решить проблему?? Когда прохожу дебагером, видно что события цепляются к объекту audioSoundEditor1, все норм, по вызову метода LoadSound звук тож нормально записывается в объект, но события не обрабатываются, не могу догнать почему??
Re[3]: Проблема с event'ами в Web Service
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.07.08 09:05
Оценка:
Здравствуйте, cheaterx, Вы писали:

C>Так как все таки можно решить проблему??


Проще всего, думаю, создавать экземпляр AudioSoundEditor при каждом вызове.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[4]: Проблема с event'ами в Web Service
От: cheaterx  
Дата: 22.07.08 09:29
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Проще всего, думаю, создавать экземпляр AudioSoundEditor при каждом вызове.


Так ведь экземпляр класса AudioSoundEditor и так создается при каждом вызове веб-метода. Может в веб-сервисах какая-то другая система обработки событий?? Просто этот же код вполне успешно работает в Windows Application, тоесть после вызова метода LoadSound нормально обрабатываются события SoundLoadingStarted и SoundLoadingDone. Конечно может быть и такая ситуация, что невозможно WinForm компонент заюзать под веб-сервис
Re[5]: Проблема с event'ами в Web Service
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.07.08 09:31
Оценка: 2 (1)
Здравствуйте, cheaterx, Вы писали:

C>Конечно может быть и такая ситуация, что невозможно WinForm компонент заюзать под веб-сервис


А это контрол что ли? Тогда работать не будет, если там через какой нибудь BeginInvoke событие инициируют — цикла выборки сообщений то нет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[6]: Проблема с event'ами в Web Service
От: cheaterx  
Дата: 22.07.08 09:36
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>А это контрол что ли? Тогда работать не будет, если там через какой нибудь BeginInvoke событие инициируют — цикла выборки сообщений то нет.


Ясно... Мои подозрения оправдались, все таки нельзя так извратиться как я хотел
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.