|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
нужно считать содержимое .wav файла для последующей отправки на сервер. можно ли просто открыть файл через open+input, как обычный текстовый файл?(был неприятный опыт, когда не считывалось содержимое ехе файла) пытался мудиться с бинарным чтением - ничего не получается ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2012, 23:07 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
QlewerBZ, Код того что ты пытался сделать в студию!!!! Или лесом иди! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2012, 08:24 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
ТупизденьQlewerBZ, Код того что ты пытался сделать в студию!!!! Или лесом иди! а мозгов хватит разобраться? ну, послушаем... Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
а вопрос вроде конкретный: можно ли считывать .wav файлы через open+input? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2012, 13:22 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
См. соседнюю тему http://www.sql.ru/forum/actualthread.aspx?tid=601640 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2012, 16:09 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
> что-то с кодом не-то. что - хз. ошибок нет, грузится цп под 100%(файл 100кб), но до последней строчки код почему-то не доходит Синтаксических ошибок нет. Но есть логические и алгоритмические: 1. Происходит двойное накопление строки в цикле: Код: vbnet 1. 2. 3. 4. 5.
При каждом проходе цикла MyTextAll удлиняется на 3 символа, а Text1.Text - на длину MyTextAll и еще точку. Через n проходов цикла длина Text1.Text составит (при исходном пустом Text1) Код: plaintext
2. Если вынести работу с Text1.Text из цикла, все равно плохо. При каждом проходе цикла создается новая строка, т.е. выделяется память под новую строку, туда переписывается прежнее содержимое строки плюс добавка, освобождается память, занятая прежней строкой. Лучше сразу создать строку-буфер окончательной длины и вписывать в нее фрагменты: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
3. Вы в курсе, что строки в VB - это Юникод, каждый символ занимает 2 байта? При загрузке двоичного файла в строку каждый байт перекодируется в 2 байта в соответствии с кодовой таблицей по умолчанию. Функция Asc обратно перекодирует 2 байта в один. Таким извратом приходится заниматься при обработке двоичных файлов на VBS, где нет типа Byte. Но в VB/VBA он есть! Поэтому окончательно данный фрагмент следует написать так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Байтовый массив ~1MB обрабатывается за 0,56 с (проц 1.6 ГГц). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2012, 01:18 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
Казанский, мм... да, большое спасибо, что объяснил) в бинарном чтении я мало что смыслю. основная цель - закачать из vb6 проги звуковой файл .wav на сервер. на данный момент считываю .wav файл при помощи open+input, перекодирую каждый символ в ASCII код и отправляю полученную строку из цифр скрипту на сервер. не знаю ещё, правильный это способ, или нет. других норм способов простой отправки файла на сервер я не нашёл) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2012, 01:48 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
Казанский, раз пошла такая пьянка борьба за скорость... Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2012, 09:22 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
скукотища, да, я тоже об этом подумал вчера уже после того, как выключил комп Еще пара вариантов, с измерением времени. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2012, 10:10 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
Казанский, скукотища, спасибо, файл превращается в строку из цифр. а как так же грамотно перекодировать его обратно? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 14:21 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
пробую так, что-то о5 не очень выходит. проект зависает. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 14:35 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
описка Код: vbnet 1.
Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 14:58 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
воть. работает но ооооч медленно. кодируется за доли секунды а раскодируется секунд 10 наверно(я не знаю, где время смотреть) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 15:05 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
Qlewer, Может тогда уже если такое дело сохранять данные в виде Hex последовательности... 30% экономии трафика ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 15:43 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
Код пока такой, бьюсь над оптимизацией... Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 16:21 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
VSVLAD, Как извратский но быстрый вариант... Правда возможно с длиной массива на байт переборщил или мне кажется.. надо уточнить ещё. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 17:05 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
VSVLAD, пасяп, попытаюсь вникнуть, напишу о результатах) тут нужно как-то увеличить скорость раскодировки в несколько раз(в моём примере 13069750 ) или искать другой способ передачи или кодировки файла. главная цель - передать файл с компа на комп посредством сервера. как работать с ftp я не догнал, поэтому маюсь переводом в кодировку ascii и передачей скриптам. в случае с лёгкими файлами всё работает хорошо, за несколько месяцев ни одной ошибки. а файлы около 1 мб раскодируются слишком долго ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 17:57 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
VSVLAD, извини, тяжело вникнуть. если я правильно понял, это способ превратить файл в строку? с этим проблем нет. а обратно? из строки в файл ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 20:17 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
оставил это же код 13070157 . доделал прогу. кажись, работает. теперь я могу удалённо записывать и прослушивать в онлайн-режиме(ну как онлайн... с задержкой в 12-13 секунд) звуки с микрофона. осталось ещё несколько дней тестить с 2 компов. самое скучное( сижу, слушаю свои же скороговорки... в будущем хочу сделать и удалённую запись с камеры, но для этого нужны знания многопоточности, сжатия и работы с видео. т.е. через пару лет. в моей проге для передачи звука около 1-1.5 мб файл содержащий 10 секундную запись голоса кодируется, передаётся на сервер, скачивается с него, раскодируется. всё это за <10 секунд а для видео размеры файлов будут побольше, поэтому придётся повозиться. если будут какие-то идеи по улучшению кода и вообще по теме, пишите, буду благодарен ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 22:12 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
работает потрясающе!!! сам не ожидал. ну, надеялся, конешь, но не думал, что получится. только что спел квартетом сам с собой. прослезился аж. круто)) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 22:26 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
Qlewer, Вообще решение вопроса достигнуто, чтение есть. Другое дело каким образом вы передаёте эти байты на "сервер" HTTP сервер + PHP/ASP? Общая папка? Или что ещё? Так как метод чтения и кодирования в ASCII последовательность неэффективный. Или сервер - это программная часть? Тогда не проще ли писать и читать и писать байты напрямую через компонент WinSock - тогда не будет лишних конверсий и задержек. Это самый лучший вариант. А Хекс режим использовать тогда, когда нужно представить байты в принтейбл виде. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2012, 08:04 |
|
open для звуковых файлов
|
|||
---|---|---|---|
#18+
VSVLADметод чтения и кодирования в ASCII последовательность неэффективный да, в ASCII не выгодно, ресурсы во время кодировки жрёт + объём в 3 раза увеличивается, но альтернативы не нашёл. пробовал передавать буквы+цифры(объём увеличивается в 1.1 раз), но русские буквы не распознаются то ли некоторыми системами, то ли моим сервером) принимающая часть и сервер принадлежат только мне. с винсок я очень долго мудился, ничего не понятно. клиентская часть программы создаёт звуковой файл, кодирует, отсылает на сервер. отправка любым способом, но кроме PHP POST запросов я хз, как это грамотно делается. через FTP, винсок или ещё как-то надо. далее админская часть скачивает файл с сервера, раскодирует, воспроизводит звуковой файл. получается очень даже неплохо, даже без зависаний между звуковыми кусками VSVLADТогда не проще ли писать и читать и писать байты напрямую через компонент WinSock сразу с клиента на админскую часть в обход сервера? или так же через сервер? я самоучка, для этого нужны толковые работающие примеры, чтобы разобраться как и что) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2012, 10:31 |
|
|
start [/forum/topic.php?fid=60&msg=37904152&tid=2157480]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 294ms |
total: | 438ms |
0 / 0 |