Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение свойств аудиофайла, не загружая его, Мультимедиа 
:(
    Опции темы
SPARKCom
Дата 16.5.2016, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 27.7.2009

Репутация: нет
Всего: нет



Привет форумчане!
Есть задача: узнать свойства аудиофайла (например длину трека)  не загружая его. Нужно это, например, быстро и красиво заполнить плейлист с временем треков и пр. Пробовал через WMPlayer, но там, что-бы получить эту инфу - нужно, мало того, что загрузить, так ещё и "play"; а если файлов больше 10, плейлист очень долго будет грузиться - коряво как-то (это норм. реализовано например в Winamp'e и пр.). В проводнике виндовс 7-же есть такая крутая фича, даже если курсор над файлом задержать - всплывает продолжительность и пр., причем не только mp3, а очень многих форматов, включая Lossless, ну соответственно можно получить через свойства файла->подробно. Значит наверняка можно просто зачитывать нужный хеадер через API. Перелопатил кучу интернета - ничего по этому поводу для VB не нарыл, кроме каких-то winamp'овских плагинов для wav. Поделитесь примерчиком или идейкой, кто в теме!

Это сообщение отредактировал(а) SPARKCom - 16.5.2016, 20:13
PM MAIL   Вверх
solowey
Дата 30.5.2016, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 24.11.2009

Репутация: нет
Всего: нет



Поковыряй тут - https://msdn.microsoft.com/library/as4xcs58(v=vs.100).aspx

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Akina
Дата 30.5.2016, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453



Цитата(SPARKCom @  16.5.2016,  21:09 Найти цитируемый пост)
узнать свойства аудиофайла (например длину трека)  не загружая его.

Как минимум потребуется загрузить ту часть файла, в которой содержится требуемая информация. Для большинства форматов это как минимум заголовок, а для контейнеров вообще придётся грузить заголовки всех блоков.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
SPARKCom
Дата 31.5.2016, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 27.7.2009

Репутация: нет
Всего: нет



Получилось зачитать заголовок(и) с помощью подключение библы "MediaInfo.dll". Оказывается она может даже, помимо всего, приклеенные обложки выгружать! Теперь встала другая незадача, как их загрузить в PictureBox!? Я получаю текстовый поток, в нем вся медиаинфа, и после строки "Cover_Data" - куча разных букав (т.е. и есть обложка). Я понимаю, что это бинарные данные, но вот как их "выдернуть" из строки и загрузить в PictureBox. Я ради смеха руками скопировал эти данные в блокнот и сохранил под .jpg - результат, понятно какой... Может кто в теме, подскажите?
PM MAIL   Вверх
SPARKCom
Дата 21.6.2016, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 27.7.2009

Репутация: нет
Всего: нет



На другом форуме подсказали, что картинка зашифрована через Base64. Рыл интернет - Гугли по запросу "Decode Image Base64" находят в основном Code/Decode текст, а если и картинки, то ничего вразумительного, либо декодируют мелкие через раз, либо вообще не декодируют. Нашел онлайн декодер "http://freeonlinetools24.com/base64-image" - Супер! "Загружаешь туда код Base64 картинки любого формата или размера, и тут же получаешь изображение. Вот бы подобный алгоритм на VB6!!! Пока ничего подобного найти не получилось. Поделитесь примерчиком, кто в теме или киньте ссылочку, если не затруднит.
PM MAIL   Вверх
Akina
Дата 21.6.2016, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453





--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
SPARKCom
Дата 22.6.2016, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 27.7.2009

Репутация: нет
Всего: нет



Цитата(Akina @  21.6.2016,  17:44 Найти цитируемый пост)
http://bfy.tw/6NRV 

Спасибо, что откликнулись, выглядит конечно эффектно, но я по запросу в гугле "base64 decode source code visual basic", и даже "decode base64 to image source code visual basic" уже все перерыл и потратил на это уйму времени. Там в основном коды "code/decode text to text" в разных вариациях, либо то, что надо (decode Base64 to Image), но на всевозможных языках, кроме vb6. Либо на vb6, но кривенько и толком нерабочее (например маааленькую гифку может, а картинка, чуть больше - никак). Поэтому, собственно и прошу здесь помощи! smile

Добавлено @ 18:46
Вот например код формы на VB.NET (нашел на "http://www.casparcg.com/forum/viewtopic.php?f=3&t=3476")
Как бы портировать в VB6?

Код

Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.IO
Imports System.Drawing.Imaging
Public Class Form1
    Private Sub ButtonX1_Click(sender As Object, e As EventArgs) Handles ButtonX1.Click
        RichTextBox1.Text = GetObrString()
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        PictureBox1.Image = Base64Local(RichTextBox1.Text)
            End Sub

    Public Function GetObrString()
        Try
            Dim client As New TcpClient
            client.Connect("192.168.1.168", 5250)
            Dim netStream = client.GetStream
            Dim info As Byte() = Encoding.ASCII.GetBytes("thumbnail retrieve 5" & vbCrLf)
            netStream.Write(info, 0, info.Length)

            Dim odpoved(440096) As Byte

            netStream.Read(odpoved, 0, odpoved.Length)
            Dim orezatString As String = Encoding.ASCII.GetString(odpoved)

            Return orezatString.Replace("201 THUMBNAIL RETRIEVE OK", " ")
        Catch ex As Exception
            Return Nothing
        End Try
    End Function

    Public Function Base64Local(ByVal base64Code As String) As Image
        Try
            Dim imagebytes As Byte() = Convert.FromBase64String(base64Code)
            Dim ms As New MemoryStream(imagebytes, 0, imagebytes.Length)
            Dim tmpimage As Image = Image.FromStream(ms, True)
            Return tmpimage
        Catch ex As Exception
            MessageBox.Show (ex.Message)
        End Try
        Return Nothing
    End Function
End Class


Это сообщение отредактировал(а) SPARKCom - 22.6.2016, 19:06
PM MAIL   Вверх
Akina
Дата 22.6.2016, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453



Чем выёживаться, посмотрел бы результат поиска - ПЕРВАЯ ссылка (и 7 из 10 на первой странице) содержит готовый код.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
SPARKCom
Дата 28.6.2016, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 27.7.2009

Репутация: нет
Всего: нет



Цитата(Akina @  22.6.2016,  23:14 Найти цитируемый пост)
...Чем выёживаться...


Ты меня так и не услышал!

Base64 to Text у меня УЙМА рабочих примеров! Мне нужно Base64 to PictureBox или, хотя бы  smile  сохранить в файл изображения!
Я там по всем этим ссылкам был и нет там ничего толкового из Base64 to Image! В первом - модуль Base64 to Text, классный, но в ТЕКСТ! Как и в следующих...

Но все равно спасибо, что откликнулся.
PM MAIL   Вверх
Akina
Дата 28.6.2016, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453



Base64 делает ОДНУ операцию! Вернее, одну из двух комплементарных. Либо char array (string) to binary array, либо наоборот. Эдакая сериализация-десериализация. И ВСЁ!

А как ты будешь интерпретировать полученный бинарный массив - как тело картинки или там как числовой массив, это целиком и полностью твоя забота, с декодированием НИКАК не связанная.

Так что тебе нужно, вероятно, ДВА не сильно связанных кода. 
Первый - это Base64-декодирование в байтовый массив. Ссылка дана. 
Второй - запихивание данных из байтового массива в PictureBox. Это можешь посмотреть, например, вот тут.

Цитата(SPARKCom @  28.6.2016,  16:42 Найти цитируемый пост)
Ты меня так и не услышал!

Извини, но имхо это ты не понял ответа. Не бывает кнопки "Сделать песдато". 
PS. А жаль.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
SPARKCom
Дата 29.6.2016, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 27.7.2009

Репутация: нет
Всего: нет



Я собсно и не просил "Сделать песдато". Я вначале в вопросе так и писал: "...бинарные данные, но вот как их "выдернуть" из строки и загрузить в PictureBox...". Может я немного и неправильно выразился, надо было: "декодировать и (потом) загрузить массив напрямую в PictureBox", но мне показалось, что суть понятна...

А за ссылку Akina, тебе громадное Спасибо!!! smile 
 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1416 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.