ve yine dll ve market - sayfa 13

 
nkaretnikov :

DLL olmadan bir sanal alandan wav dosyasını oynatmak imkansız mı?

yardımdan

Örneğin, Demo.wav ses dosyası terminal_data_directory\MQL5\Files klasöründe bulunuyorsa, PlaySound() çağrısı aşağıdaki gibi yazılmalıdır:

//--- terminal_data_directory\MQL5\Files\ klasöründeki Demo.wav ses dosyasını oynatın
    PlaySound ( "\\Files\\Demo.wav" );

Sorun, playound motorunun kendisinin kusurlu olmasıdır. sesleri birleştirmez, ancak yeni bir komut gelir gelmez öncekini çalmayı bırakır.

pazarda, ürünün üçüncü taraf modüllere bağlı değil, kutudan çıktığı gibi çalışması gerektiğine dair bir gereklilik vardır. ancak bir şövalye hamlesi yapabilirsiniz - playound koltuk değneği üzerinde kutulu bir çözüm yapın ve örneğin kod tabanında düzenlenmiş bir modülünüz varsa, Windows motoru aracılığıyla normal çözümü kullanın. hangi anlıyorum ve metin tanıma da mümkün.

 
nkaretnikov :

Sen, tecrübeli bir insan görüyorum, bir soket üzerinden erişime bir örnek yazmama yardım eder misin?

Buradaki belgeler https://cloud.ibm.com/docs/text-to-speech?topic=text-to-speech-usingWebSocket

instance_id anladığım kadarıyla GR1bb3zVMs9fcNKL6pA9-5zj9ptWliCu6eh9oupUnpZB'ye eşittir

Ben sigara içerken...

İstekte tam olarak ne işe yaramıyor? Belgelerde iyi örnekler var.

Artık konuşmacı protokolüyle uğraşacak zaman yok ve bu işe yaramaz bir şey.

Bağlantınıza gelince - WebSocket kullanamıyorsanız - kullanmasanız iyi olur, çok zaman kazanın (eğer deneyiminiz yoksa). Websocket dışında başka seçenekler de var.

Документация по MQL5: Сетевые функции / SocketCreate
Документация по MQL5: Сетевые функции / SocketCreate
  • www.mql5.com
//|                                                SocketExample.mq5 | //|                        Copyright 2018, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Отправка команды на сервер                                       |...
 
Andrei Trukhanovich :

yardımdan

Örneğin, Demo.wav ses dosyası terminal_data_directory\MQL5\Files klasöründe bulunuyorsa, PlaySound() çağrısı aşağıdaki gibi yazılmalıdır:

//--- terminal_data_directory\MQL5\Files\ klasöründeki Demo.wav ses dosyasını oynatın
    PlaySound ( "\\Files\\Demo.wav" );

Sorun, playound motorunun kendisinin kusurlu olmasıdır. sesleri birleştirmez, ancak yeni bir komut gelir gelmez öncekini çalmayı bırakır.

pazarda, ürünün üçüncü taraf modüllere bağlı değil, kutudan çıktığı gibi çalışması gerektiğine dair bir gereklilik vardır. ancak bir şövalye hamlesi yapabilirsiniz - playound koltuk değneği üzerinde kutulu bir çözüm yapın ve örneğin kod tabanında düzenlenmiş bir modülünüz varsa, Windows motoru aracılığıyla normal çözümü kullanın. hangi anlıyorum ve metin tanıma da mümkün.

işte ben de aynıyım! )

Evet, 2 yol.

1. yol - PlaySound ve telaffuz hızına göre duraklamalar. Ancak bununla yerel Windows TTS yeteneklerini çağırma aşamasında da karşılaştım, ikinci ifade meşgul bir iş parçacığına girdiğinde bir çalışma zamanı hatası alıyoruz. Bu nedenle, dakikada 100 karakterlik bir oynatma hızına bağlı olarak sınıfta bir gecikme vardır. Temel olarak, durumdan çıkıyoruz

2. yöntem - Kapalı kodlu bir test dosyası oluşturun ve izin verilen DLL'lerle açık kodla oynatın

 
Serhii Shevchuk :

Neden bir kez daha klasöre bir şeyler yazalım? PlaySound kaynaklardan çalabilir, bağlantıdaki "Kaynak Kullanımı" paragrafına bakın

PS Kendim denemedim, ancak belgelerde yazılı olduğu için yapabileceğiniz anlamına geliyor

Bu nedenle, TS, sağlam kaynakların Expert Advisor'a önceden entegrasyonunu gerektirmeyen evrensel bir çözüm istiyor. Danışman ve sunucu arasında, ilkinin ŞİMDİ kullanıcıya söylenmesi gereken kelimelerden bir metin dosyası oluşturduğu ve sunucunun bunları .wav'a dönüştürdüğü ve geri gönderdiği bir etkileşim sistemi tasarlamak istiyor. danışman. Ayrıca danışman, bilinmeyen bir şekilde, dosyayı önceki dosyanın yerine yazar (önceki ses sunucudan hareket ederek) ve yeni seslendirmeyi çalmak için PlaySound'u arar.

Böyle bir plan işe yaramaz.
 
Реter Konow :
Bu nedenle, TS, sağlam kaynakların Expert Advisor'a önceden entegrasyonunu gerektirmeyen evrensel bir çözüm istiyor. Danışman ve sunucu arasında, ilkinin ŞİMDİ kullanıcıya söylenmesi gereken kelimelerden bir metin dosyası oluşturduğu, sunucunun bunları .wav'a dönüştürdüğü ve geri gönderdiği bir etkileşim sistemi tasarlamak istiyor. danışman. Ayrıca danışman, bilinmeyen bir şekilde, dosyayı önceki dosyanın yerine yazar (önceki ses sunucudan hareket ederek) ve yeni seslendirmeyi çalmak için PlaySound'u arar.

Böyle bir plan işe yaramaz.

ResourceCreate kullanmayı kastetmiştim

Alınan verilerden bir kaynak oluşturun. Ardından PlaySound ile oynayın. Ancak örneklerde böyle bir demet bulamadım (işe yarayacağından emin değilim). Bu yüzden önceki mesajımı sildim.

Документация по MQL5: Общие функции / ResourceCreate
Документация по MQL5: Общие функции / ResourceCreate
  • www.mql5.com
[in]  Относительный путь к файлу, содержащему данные для ресурса. Если путь начинается с обратной косой черты "\" (пишется "\\"), то файл ищется относительно папки Если второй вариант функции вызывается для...
 
Serhii Shevchuk :

ResourceCreate kullanmayı kastetmiştim

Alınan verilerden bir kaynak oluşturun. Ardından PlaySound ile oynayın. Ancak örneklerde böyle bir demet bulamadım (işe yarayacağından emin değilim). Bu yüzden önceki mesajımı sildim.

İyi fikir. Emin olmamakla birlikte deneyebilirsin.)))
 
Serhii Shevchuk :

İstekte tam olarak ne işe yaramıyor? Belgelerde iyi örnekler var.

Artık konuşmacı protokolüyle uğraşacak zaman yok ve bu işe yaramaz bir şey.

Bağlantınıza gelince - WebSocket kullanamıyorsanız - kullanmasanız iyi olur, çok zaman kazanın (eğer deneyiminiz yoksa). Websocket dışında başka seçenekler de var.

işte çalışmayan şey https://www.mql5.com/en/forum/342293/page12#comment_16633648

Dosya oluşturuldu ancak boş. Onun adı



curl komutuyla indirilen dosyadan farklı



Bir nevi yazılı kodun

 //+------------------------------------------------------------------+
//|                                                   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 = headers + "-u apikey:GR1bb3zVMs9fcNKL6pA9-5zj9ptWliCu6eh9oupUnpZB" ;
   headers = headers + " --header \"Content-Type: application/json\"" ;
   headers = headers + " --header \"Accept: audio/wav\"" ;
   headers = headers + " --data \"{\"text\":\"hello world\"}\"" ;
   headers = headers + " --output hello_world.wav" ;
//output hello_world.wav ^

   string url= "https://api.eu-gb.text-to-speech.watson.cloud.ibm.com" ;
//--- для работы с сервером необходимо добавить URL "https://finance.yahoo.com"
//--- в список разрешенных URL (Главное меню->Сервис->Настройки, вкладка "Советники"):
//--- обнуляем код последней ошибки
   ResetLastError ();
//--- загрузка html-страницы с Yahoo Finance
   int res = WebRequest ( "POST" ,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);
     }
  }
//+------------------------------------------------------------------+


WebRequest sözdizimini yanlış oluşturur.

Onlar. curl'in yaptığını yapmak için WebRequest'i alamıyor

и снова dll и маркет
и снова dll и маркет
  • 2020.05.31
  • www.mql5.com
День добрый! Правило №1 dll на Маркете запрещен...
 
Nikolai Karetnikov :

işte çalışmayan şey https://www.mql5.com/ru/forum/342293/page12#comment_16633648

.....

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

 
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.
 
Nikolai Karetnikov :

işte çalışmayan şey https://www.mql5.com/en/forum/342293/page12#comment_16633648

Dosya oluşturuldu ancak boş. Onun adı



curl komutuyla indirilen dosyadan farklı



Bir nevi yazılı kodun


WebRequest sözdizimini yanlış oluşturur.

Onlar. curl'in yaptığını yapmak için WebRequest'i alamıyor

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