ve yine dll ve market - sayfa 14

 
Реter Konow :
Expert Advisor'ın daha önce kaydettiği Files klasöründen ses dosyası çalınabiliyorsa, alınan ses dosyası eksiksiz ise sorunun çözümü gerçek olacaktır.
Değil! Belgeler, ses dosyalarının Sesler klasöründe saklanması gerektiğini söylüyor.
https://www.mql5.com/ru/docs/common/playsound

Bu konu için kritik bir konudur. Dosya Dosyalar klasöründen çalınmıyorsa, PlaySound prensipte kaybolur. O zaman sunucudan hiçbir şey döndürmeniz gerekmez. Ne için? PlaySound, birdenbire danışmanın dahili kaynağıyla çalışmazsa, ki bundan son derece şüpheliyim...
 
Birisi .wav dosyasını Dosyalar klasöründen çalıştırmayı dener. İlginç, aniden ortaya çıkacak.)))
 
//+------------------------------------------------------------------+
//|                                                       Sounds.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   PlaySound ( "\\Files\\Sounds\\alert.wav" );
   Sleep ( 1 * 1000 );
   PlaySound ( "\\Files\\Sounds\\request.wav" );
   Sleep ( 1 * 1000 );
   PlaySound ( "\\Files\\Sounds\\email.wav" );
  }
//+------------------------------------------------------------------+
Peter Konow'un fotoğrafı.
Birisi lütfen .wav dosyasını Dosyalar klasöründen çalıştırmayı deneyin. İlginç, aniden ortaya çıkacak.)))

evet çalışıyor, tüm klasörü kopyaladım

C:\Users\San\AppData\Roaming\MetaQuotes\Terminal\ 3 DE8A6E768D9369994F541727D733DE8\MQL5\Files\Sounds\
 
Alexsandr San :

evet çalışıyor, tüm klasörü kopyaladım

Ama bu zaten umut.)))
 
Реter Konow :
Ama bu zaten umut.)))

başlatılan şarkıyı bir kez daha kontrol etti

   Sleep ( 1 * 1000 );
   PlaySound ( "\\Files\\Sounds\\Kazka.wav" );
https://yadi.sk/d/EGsTJGYBmDFnGg
 
Alexsandr San :

başlatılan şarkıyı bir kez daha kontrol etti

https://yadi.sk/d/EGsTJGYBmDFnGg
Bu, belgelere her zaman %100 güvenmeniz gerekmediği anlamına gelir)))

Şimdi, araç sunucudan geçerli ses dosyaları alacaksa, bir yere yeniden kayıt yapacak ve hareket halindeyken çalacaksa, metin mesajlarının kullanıcıya seslendirilmesi için evrensel bir çözüm görevi çözülecektir.

not. PlaySound ve EA tarafından oluşturulan dahili kaynaklar ses çalabilir mi? Ardından, dosyayı Dosyalar'a yazmanız gerekmez. Hemen kaynağa kaydedin ve oynayın.
 
Реter Konow :
Bu, belgelere her zaman %100 güvenmeniz gerekmediği anlamına gelir)))

Şimdi, araç sunucudan geçerli ses dosyaları alacaksa, bir yere yeniden kayıt yapacak ve hareket halindeyken çalacaksa, metin mesajlarının kullanıcıya seslendirilmesi için evrensel bir çözüm görevi çözülecektir.

not. PlaySound ve EA tarafından oluşturulan dahili kaynaklar ses çalabilir mi?

Danışmanımda bilmiyorum - herhangi bir işlem nerede yapılır, kaybeder

                     ObjectsDeleteAll ( 0 ,InpObjDownNameG);
                     IndicatorDelete();
                     PlaySound ( "ok.wav" );
                     if (InpChartInd && Obj_SELLChartInd())
                         return ;

doğal olarak kendi melodisi veya sesi

 
Serhii Shevchuk :

Bakabilirim ama yarın akşamdan önce değil. O zamana kadar çözemezsen.

Maksim Kuznetsov :

ve çalışmayacak :-)

HTTP başlıklarında neden curl komut seçeneklerini geçiyorsunuz ???

kahretsin, en azından kitap oku, örneklere bak ... yoksa gerçekten tüm kagallarla senin için bir makale yazarız

peki bir ikili dosya çıktısı olan bir örneği nereden alabilirim!? ))

anlamaya çalışırken, url komutunun sözdizimini en aza indirdim


curl -X GET -u ^
apikey:GR1bb3zVMs9fcNKL6pA9- 5 zj9ptWliCu6eh9oupUnpZB ^
--output hello_world.wav ^
https: //api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST

onun yardımıyla TEST kelimesiyle bir wav dosyası indiriyorum

seçenekleri kaldır

 //+------------------------------------------------------------------+
//|                                                   WebRequest.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   string cookie= NULL ,headers;
   char    post[],result[];
   char cost_char_data[];
   string   result_headers;
   
   headers = "-u apikey:GR1bb3zVMs9fcNKL6pA9-5zj9ptWliCu6eh9oupUnpZB --output hello_world.wav" ;
   string url= "https://api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST" ;
   ResetLastError ();
   int res = WebRequest ( "GET" ,url,headers, 1000 ,cost_char_data,result,result_headers);
   if (res==- 1 )
     {
       Print ( "Ошибка в WebRequest. Код ошибки  =" , GetLastError ());
       //--- возможно, URL отсутствует в списке, выводим сообщение о необходимости его добавления
       MessageBox ( "Необходимо добавить адрес '" +url+ "' в список разрешенных URL во вкладке 'Советники'" , "Ошибка" , MB_ICONINFORMATION );
     }
   else
     {
       if (res== 200 )
        {
         //--- успешная загрузка
         PrintFormat ( "Файл успешно загружен, размер %d байт." , ArraySize (result));
         //PrintFormat("Заголовки сервера: %s",headers);
         //--- сохраняем данные в файл
         int filehandle= FileOpen ( "output hello_world.wav" , FILE_WRITE | FILE_BIN );
         if (filehandle!= INVALID_HANDLE )
           {
             //--- сохраняем содержимое массива result[] в файл
             FileWriteArray (filehandle,result, 0 , ArraySize (result));
             //--- закрываем файл
             FileClose (filehandle);
           }
         else
             Print ( "Ошибка в FileOpen. Код ошибки =" , GetLastError ());
        }
       else
         PrintFormat ( "Ошибка загрузки '%s', код %d" ,url,res);
     }
  }
//+------------------------------------------------------------------+


üstbilgide şimdi, sunucunun arkasında apikey beklediği -u yetkilendirme seçeneği. Her şey mantıklı görünüyor, ancak sözdiziminde hala bir şeyler yanlış

kod yürütme sonucu - " Webrequest4Voice (EURCHF,D1) 'https://api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST' yüklenirken hata oluştu, kod 401 "

Bana söyler misin? ))

 
Nikolai Karetnikov :

peki bir ikili dosya çıktısı olan bir örneği nereden alabilirim!? ))

anlamaya çalışırken, url komutunun sözdizimini en aza indirdim


onun yardımıyla TEST kelimesiyle bir wav dosyası indiriyorum

seçenekleri kaldır


üstbilgide şimdi, sunucunun arkasında apikey beklediği -u yetkilendirme seçeneği. Her şey mantıklı görünüyor, ancak sözdiziminde bir şeyler hala yanlış

kod yürütme sonucu - " Webrequest4Voice (EURCHF,D1) 'https://api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST' yüklenirken hata oluştu, kod 401 "

Bana söyler misin? ))

401 hatası ne anlama geliyor?
 

Bir HTTP isteğini kıvrılma seçeneklerinden WebRequest seçeneklerine çevirmek için:

1. genel anlamda, Wikipedia'da HTTP'nin nasıl çalıştığını görün

2. Curl belgelerine bakın hangi seçenek, ne anlama geliyor ve neden hizmet ediyor

3. WebRequest'teki yardımı okuyun ve bu başlıkta bile birçok örnek bulunan örnekleri görün

4. Ne yaptığınızın farkına vararak kod yazın :-) ne, neden, neden değiştirilir.

4 puanın da işinize yarayacağını açıkça umuyorsunuz. Hafta sonu, az zaman, çok fikir olduğunu anlıyorum. hızlı bir şekilde gerekiyor

Ama yine de kendin yapmalısın.