Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26151
Рейтинг: 2127
#46: 2008-06-16 20:08:23 ЛС | профиль | цитата
Antonio DieS, ну просто URL на один любой mp3 файл, который может воспроизводиться (ну вместо того списка, который у тебя в схеме), ну и чтобы у него TAG был нормальный.
карма: 22

0
Ответов: 232
Рейтинг: 6
#47: 2008-06-16 20:16:00 ЛС | профиль | цитата
Ая яй, так вот любой может ))) в том то и фишка чтоб с потока хапать таг, а вот я как раз и не знаю, любое инет радио воспроизведи там есть таги, но простым сохранением в файл методом вытяжки http_get'om не к чему ни приводит, точней сохраняет например стиль и все, и то потому что там наверно есть байт не имеющий отношение к тагам.
------------ Дoбавленo:

Кстате что делать согг вообще не пойму хотя там также таги стандартные а где они там находятся хз (
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#48: 2008-06-16 20:18:52 ЛС | профиль | цитата
Да, совсем забыл -- нужен полный список Genre из 147 пунктов
------------ Дoбавленo:

Antonio DieS, ты не понял, нужно проверить именно BASS_StreamGetTags, сначала на одном файле, потом уже на потоке
карма: 22

0
Ответов: 232
Рейтинг: 6
#49: 2008-06-16 20:20:23 ЛС | профиль | цитата
А ну сейчас поищу или выложу

карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#50: 2008-06-16 20:22:35 ЛС | профиль | цитата
Ну ты пока поищи, а я немного отлучусь
карма: 22

0
Ответов: 232
Рейтинг: 6
#51: 2008-06-17 00:09:24 ЛС | профиль | цитата
http://slil.ru/25901566


так вот ссылка в файле полностью заполнены теги
------------ Дoбавленo:

Ты выйди в чат хасма и если что то надо найти пиши )
------------ Дoбавленo:

Retrieves tags/headers from a channel.


#pas
char *BASS_ChannelGetTags(
DWORD handle,
DWORD tags
);

Parameters
handle The channel handle... a HMUSIC or HSTREAM.
tags The tags/headers wanted... one of the following.
BASS_TAG_ID3 ID3v1 tags. A pointer to a 128 byte block is returned. See http://www.id3.org/ID3v1 for details of the block's structure.
BASS_TAG_ID3V2 ID3v2 tags. A pointer to a variable length block is returned. ID3v2 tags are supported at both the start and end of the file. See http://www.id3.org/ for details of the block's structure.
BASS_TAG_LYRICS3 Lyrics3v2 tag. A single string is returned, containing the Lyrics3v2 information. See http://www.id3.org/Lyrics3v2 for details of its format.
BASS_TAG_OGG OGG comments. A pointer to a series of null-terminated UTF-8 strings is returned, the final string ending with a double null.
BASS_TAG_VENDOR OGG encoder. A single UTF-8 string is returned.
BASS_TAG_HTTP HTTP headers, only available when streaming from a HTTP server. A pointer to a series of null-terminated strings is returned, the final string ending with a double null.
BASS_TAG_ICY ICY (Shoutcast) tags. A pointer to a series of null-terminated strings is returned, the final string ending with a double null.
BASS_TAG_META Shoutcast metadata. A single string is returned, containing the current stream title and url (usually omitted). The format of the string is: StreamTitle='xxx';StreamUrl='xxx';
BASS_TAG_RIFF_INFO RIFF/WAVE "INFO" tags. A pointer to a series of null-terminated strings is returned, the final string ending with a double null. The tags are in the form of "XXXX=text", where "XXXX" is the chunk ID..
BASS_TAG_MUSIC_NAME MOD music title.
BASS_TAG_MUSIC_MESSAGE MOD message text.
BASS_TAG_MUSIC_INST
+ instrument number (0=first) MOD instrument name. Only available with formats that have instruments, eg. IT and XM (and MO3).
BASS_TAG_MUSIC_SAMPLE
+ sample number (0=first) MOD sample name.
other tags may be supported by add-ons, see the documentation.



Return value
If successful, the requested tags are returned, else NULL is returned. Use BASS_ErrorGetCode to get the error code.

Error codes
BASS_ERROR_HANDLE handle is not valid.
BASS_ERROR_NOTAVAIL The requested tags are not available.


Remarks
ID3v1 tags are located at the end of the file, so when streaming a file with ID3v1 tags from the internet, the tags will not be available until the download is complete. A BASS_SYNC_DOWNLOAD sync can be set via BASS_ChannelSetSync, to be informed of when the download is complete. A BASS_SYNC_META sync can be used to be informed of new Shoutcast metadata, and a BASS_SYNC_OGG_CHANGE sync for when a new logical bitstream begins in a chained OGG stream, which generally brings new OGG tags.

Example
List an OGG stream's comments.


#pas
char *comments=BASS_ChannelGetTags(channel, BASS_TAG_OGG); // get a pointer to the 1st comment
if (comments)
while (*comments) {
printf("%s\n", comments); // display the comment
comments+=strlen(comments)+1; // move on to next comment
}


List a MOD music's samples.

#pas
char *text;
int n=0;
while (text=BASS_ChannelGetTags(channel, BASS_TAG_MUSIC_SAMPLE+n)) {
printf("sample %d = %s\n", n+1, text); // display the sample text
n++; // move on to next sample
}


------------ Дoбавленo:

По сути нам нужно это: BASS_TAG_META Shoutcast metadata. A single string is returned, containing the current stream title and url (usually omitted). The format of the string is: StreamTitle='xxx';StreamUrl='xxx';
------------ Дoбавленo:

в исходниках все это нашел но как реализовать то (((((
------------ Дoбавленo:

// BASS_StreamGetTags flags : what's returned
BASS_TAG_ID3 = 0; // ID3v1 tags : 128 byte block
BASS_TAG_ID3V2 = 1; // ID3v2 tags : variable length block
BASS_TAG_OGG = 2; // OGG comments : array of null-terminated strings
BASS_TAG_HTTP = 3; // HTTP headers : array of null-terminated strings
BASS_TAG_ICY = 4; // ICY headers : array of null-terminated strings
BASS_TAG_META = 5; // ICY metadata : null-terminated string

Вот еще нашел но это в самом хиасме всмысле в компоненте .
------------ Дoбавленo:

Вот чую что рядом но елки палки что куда сувать не пойму (
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#52: 2008-06-17 00:18:27 ЛС | профиль | цитата
Antonio DieS, дырку от бублика оно выдает, а не BASS_TAG_META. Нашел код, так он черт знает какого размера
карма: 22

0
Ответов: 232
Рейтинг: 6
#53: 2008-06-17 00:23:10 ЛС | профиль | цитата
А если не обращать внимание на размер ?
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#54: 2008-06-17 00:25:25 ЛС | профиль | цитата
Antonio DieS писал(а):
А если не обращать внимание на размер ?

Да не в размере дело, а в том, что на VCL написано а не на KOL. Вот пытаюсь найти знакомые букфы
карма: 22

0
Ответов: 232
Рейтинг: 6
#55: 2008-06-17 00:32:02 ЛС | профиль | цитата
А ну это серьезноя вот сейчас ВЦЛ изучаю а толку то если на КОЛ надо, но у ВЦЛ почему то больше возможностей.
------------ Дoбавленo:

А может тебе дать ссылку на примеры и полную инфу по БАСС ?

карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#56: 2008-06-17 00:38:54 ЛС | профиль | цитата
Antonio DieS писал(а):
А может тебе дать ссылку на примеры и полную инфу по БАСС ?

Кидай, если не мне, так кому-нибудь точно пригодится.
карма: 22

0
Ответов: 232
Рейтинг: 6
#57: 2008-06-17 00:52:12 ЛС | профиль | цитата
Только не говори что ты умываешь руки ты у меня последняя надежда )

http://www.un4seen.com/
и сами исходники http://uk.un4seen.com/files/bass24.zip
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#58: 2008-06-17 01:04:04 ЛС | профиль | цитата
Antonio DieS писал(а):
Только не говори что ты умываешь руки

Ну, может быть, сегодня... Завтра еще посмотрим, спешка нужна, сам понимаешь где...
карма: 22

0
Ответов: 232
Рейтинг: 6
#59: 2008-06-17 02:47:15 ЛС | профиль | цитата
А давай завтра не тока посмотрим, но еще и сделаем? Было бы вообще шикардос только губазакаточную технику и другие такого же типа не предлагать
------------ Дoбавленo:

BASS_ChannelSetSync - а почему такого компонента кстати нету ? вот из справки описание:



Sets up a synchronizer on a MOD music, stream or recording channel.

HSYNC BASS_ChannelSetSync(
DWORD handle,
DWORD type,
QWORD param,
SYNCPROC *proc,
void *user
);


Parameters
handle The channel handle... a HMUSIC, HSTREAM or HRECORD.
type The type of sync (see the table below). The following flags may also be used.
BASS_SYNC_MIXTIME Call the sync function immediately when the sync is triggered, instead of delaying the call until the sync event is actually heard. This is automatic with some sync types (see table below), and always with decoding and recording channels, as they can not be played/heard.
BASS_SYNC_ONETIME Call the sync only once, and then remove it from the channel.

param The sync parameter. Depends on the sync type... see the table below.
proc The callback function.
user User instance data to pass to the callback function.


Sync types, with param and SYNCPROC data definitions.
BASS_SYNC_DOWNLOAD
mixtime only Sync when downloading of an internet (or "buffered" user file) stream is done.
param : not used. data : not used.
BASS_SYNC_END Sync when a channel reaches the end, including when looping. Note that some MOD musics never reach the end, they may jump to another position first. If the BASS_MUSIC_STOPBACK flag is used with a MOD music (through BASS_MusicLoad or BASS_ChannelFlags), then this sync will also be called when a backward jump effect is played.
param : not used. data : 1 = the sync is triggered by a backward jump in a MOD music, otherwise not used.
BASS_SYNC_FREE
mixtime only Sync when a channel is freed. This can be useful when you need to release some resources associated with the channel. Note that you will not be able to use any BASS functions with the channel in the callback, as the channel will no longer exist.
param : not used. data : not used.
BASS_SYNC_META
mixtime only Sync when metadata is received in a Shoutcast stream. The updated metadata is available from BASS_ChannelGetTags.
param : not used. data : not used.
BASS_SYNC_MUSICFX Sync when the sync effect is used in a MOD music. The sync effect is E8x or Wxx for the XM/MTM/MOD formats, and S2x for the IT/S3M formats (where x = any value).
param : 0 = the position is passed to the callback (data : LOWORD = order, HIWORD = row), 1 = the value of x is passed to the callback (data : x value).
BASS_SYNC_MUSICINST Sync when an instrument (sample for the MOD/S3M/MTM formats) is played in a MOD music (not including retrigs).
param : LOWORD = instrument (1=first), HIWORD = note (0=c0...119=b9, -1=all). data : LOWORD = note, HIWORD = volume (0-64).
BASS_SYNC_MUSICPOS Sync when a MOD music reaches an order.row position.
param : LOWORD = order (0=first, -1=all), HIWORD = row (0=first, -1=all). data : LOWORD = order, HIWORD = row.

BASS_SYNC_OGG_CHANGE
mixtime only Sync when a new logical bitstream begins in a chained OGG stream. Updated tags are available from BASS_ChannelGetTags.
param : not used. data : not used.
BASS_SYNC_POS Sync when a channel reaches a position.
param : position in bytes (automatically rounded down to nearest sample). data : not used.
BASS_SYNC_SETPOS Sync when a channel's position is set, including when looping/restarting.
param : not used. data : 0 = playback buffer is not flushed, 1 = playback buffer is flushed.
BASS_SYNC_SLIDE
mixtime only Sync when an attribute slide has ended.
param : not used. data : the attribute that has finished sliding (one of the BASS_ATTRIB_xxx values).
BASS_SYNC_STALL
mixtime only Sync when playback of the channel is stalled/resumed.
param : not used. data : 0 = stalled, 1 = resumed.
other sync types may be supported by add-ons, see the documentation.


Return value
If successful, then the new synchronizer's handle is returned, else 0 is returned. Use BASS_ErrorGetCode to get the error code.

Error codes
BASS_ERROR_HANDLE handle is not a valid channel.
BASS_ERROR_ILLTYPE An illegal type was specified.
BASS_ERROR_ILLPARAM An illegal param was specified.


Remarks
Multiple synchronizers may be used per channel, and they can be set before and while playing. Equally, synchronizers can also be removed at any time, using BASS_ChannelRemoveSync. If the BASS_SYNC_ONETIME flag is used, then the sync is automatically removed after its first occurrence.

The BASS_SYNC_MIXTIME flag can be used with BASS_SYNC_END or BASS_SYNC_POS/MUSICPOS syncs to implement custom looping, by using BASS_ChannelSetPosition in the callback. A mixtime sync can also be used to add or remove DSP/FX at specific points, or change a HMUSIC channel's flags or attributes. The BASS_SYNC_MIXTIME flag can also be useful with a BASS_SYNC_SETPOS sync, to reset DSP states after seeking.

With recording channels, BASS_SYNC_POS syncs are triggered just before the RECORDPROC receives the block of data containing the sync position.

OSX notes
The BASS_SYNC_MESSAGE flag is not supported.


Example
Do some processing until a MOD music reaches the 10th order.

BOOL order10=FALSE; // the order 10 flag
...
// the sync callback
void CALLBACK MySyncProc(HSYNC handle, DWORD channel, DWORD data, void *user)
{
order10=TRUE; // set the order 10 flag
}
...
BASS_ChannelSetSync(music, BASS_SYNC_MUSICPOS|BASS_SYNC_ONETIME, (QWORD)MAKELONG(10,0), &MySyncProc, 0); // set the one-time order 10 sync
while (!order10) {
// order 10 has not arrived, so do some processing
}
// order 10 has arrived!



Process metadata received from a Shoutcast stream.

char title[100]=""; // the current stream title
...
// the sync callback
void CALLBACK MyMetaSyncProc(HSYNC handle, DWORD channel, DWORD data, void *user)
{
char *meta=BASS_ChannelGetTags(channel, BASS_TAG_META); // get metadata
meta=strstr(meta, "StreamTitle='"); // look for title
if (meta) { // found it, copy it...
strcpy(title, meta+13);
strchr(title, ';')[-1]=0;
}
}
...
BASS_ChannelSetSync(stream, BASS_SYNC_META, 0, &MyMetaSyncProc, 0); // set the meta sync



карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#60: 2008-06-17 13:12:37 ЛС | профиль | цитата
Короче, BASS_ChannelGetTags не реализовано в рекомендуемой версии bass.dll.
------------ Дoбавленo:

Нет, конечно можно прицепит версию 2.4, но я не считаю это нормальным. Получится, что у одного будет работать, а у другого -- бублик. Ага, а я должен за это отдуваться...
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)