本文整理汇总了C++中taglib::AudioProperties::channels方法的典型用法代码示例。如果您正苦于以下问题:C++ AudioProperties::channels方法的具体用法?C++ AudioProperties::channels怎么用?C++ AudioProperties::channels使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类taglib::AudioProperties
的用法示例。
在下文中一共展示了AudioProperties::channels方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getMp3Info
void getMp3Info(const WCHAR* fileName, MP3Info &info)
{
TagLib::FileRef f(fileName);
if (!f.isNull() && f.tag())
{
TagLib::Tag *tag = f.tag();
info.tag[0] = tag->title().toWString();
info.tag[1] = tag->artist().toWString();
info.tag[2] = tag->album().toWString();
info.tag[3] = tag->comment().toWString();
info.tag[4] = tag->genre().toWString();
info.year = tag->year();
info.track = tag->track();
TagLib::PropertyMap tags = f.file()->properties();
if (!f.isNull() && f.audioProperties())
{
TagLib::AudioProperties *properties = f.audioProperties();
int seconds = properties->length() % 60;
int minutes = (properties->length() - seconds) / 60;
info.bitrate = properties->bitrate();
info.sample_rate = properties->sampleRate();
info.channels = properties->channels();
info.length_minutes = minutes;
info.length_seconds = seconds;
}
}
}
示例2: handle_file
int handle_file(const char* filepath, const char* filekey, AudioFileRecordStore& record_store)
{
bool record_exists = record_store.find_record(filekey) != NULL;
// Scanning a file for tags is expensive, so only do it if required.
if(record_exists
&& !record_store.record_update_required(filekey))
{
// no update reqquired so has been handled.
return 1;
}
TagLib::FileRef f(filepath);
if (!f.isNull() && f.tag())
{
AudioFileRecord &record = record_store.get_record(filekey);
record.update_start();
if (verbose)
{
TagLib::Tag *tag = f.tag();
std::cout << filepath << endl;
std::cout << filekey << endl;
std::cout << "-- TAG (basic) --" << endl;
std::cout << "title - \"" << tag->title() << "\"" << endl;
std::cout << "artist - \"" << tag->artist() << "\"" << endl;
std::cout << "album - \"" << tag->album() << "\"" << endl;
std::cout << "year - \"" << tag->year() << "\"" << endl;
std::cout << "comment - \"" << tag->comment() << "\"" << endl;
std::cout << "track - \"" << tag->track() << "\"" << endl;
std::cout << "genre - \"" << tag->genre() << "\"" << endl;
}
TagLib::PropertyMap tags = f.file()->properties();
for(TagLib::PropertyMap::ConstIterator i = tags.begin(); i != tags.end(); ++i)
{
for(TagLib::StringList::ConstIterator j = i->second.begin(); j != i->second.end(); ++j)
{
record.update(i->first.toCString(true), j->toCString(true));
}
}
if (f.audioProperties())
{
TagLib::AudioProperties *properties = f.audioProperties();
record.update(audio_tags::BITRATE, properties->bitrate());
record.update(audio_tags::LENGTH, properties->length());
record.update(audio_tags::SAMPLERATE, properties->sampleRate());
record.update(audio_tags::CHANNELS, properties->channels());
}
record.update_complete();
return 1;
}
return 0;
}
示例3: main
int main(int argc, char *argv[])
{
for(int i = 1; i < argc; i++) {
cout << "******************** \"" << argv[i] << "\" ********************" << endl;
TagLib::FileRef f(argv[i]);
if(!f.isNull() && f.tag()) {
TagLib::Tag *tag = f.tag();
cout << "-- TAG (basic) --" << endl;
cout << "title - \"" << tag->title() << "\"" << endl;
cout << "artist - \"" << tag->artist() << "\"" << endl;
cout << "album - \"" << tag->album() << "\"" << endl;
cout << "year - \"" << tag->year() << "\"" << endl;
cout << "comment - \"" << tag->comment() << "\"" << endl;
cout << "track - \"" << tag->track() << "\"" << endl;
cout << "genre - \"" << tag->genre() << "\"" << endl;
TagLib::PropertyMap tags = f.file()->properties();
unsigned int longest = 0;
for(TagLib::PropertyMap::ConstIterator i = tags.begin(); i != tags.end(); ++i) {
if (i->first.size() > longest) {
longest = i->first.size();
}
}
cout << "-- TAG (properties) --" << endl;
for(TagLib::PropertyMap::ConstIterator i = tags.begin(); i != tags.end(); ++i) {
for(TagLib::StringList::ConstIterator j = i->second.begin(); j != i->second.end(); ++j) {
cout << left << std::setw(longest) << i->first << " - " << '"' << *j << '"' << endl;
}
}
}
if(!f.isNull() && f.audioProperties()) {
TagLib::AudioProperties *properties = f.audioProperties();
int seconds = properties->length() % 60;
int minutes = (properties->length() - seconds) / 60;
cout << "-- AUDIO --" << endl;
cout << "bitrate - " << properties->bitrate() << endl;
cout << "sample rate - " << properties->sampleRate() << endl;
cout << "channels - " << properties->channels() << endl;
cout << "length - " << minutes << ":" << setfill('0') << setw(2) << seconds << endl;
}
}
return 0;
}
示例4: main
int main(int argc, char *argv[])
{
for(int i = 1; i < argc; i++) {
cout << "******************** \"" << argv[i] << "\" ********************" << endl;
TagLib::FileRef f(argv[i]);
if(!f.isNull() && f.tag()) {
TagLib::Tag *tag = f.tag();
cout << "-- TAG --" << endl;
cout << "title - \"" << tag->title() << "\"" << endl;
cout << "artist - \"" << tag->artist() << "\"" << endl;
cout << "album - \"" << tag->album() << "\"" << endl;
cout << "year - \"" << tag->year() << "\"" << endl;
cout << "comment - \"" << tag->comment() << "\"" << endl;
cout << "track - \"" << tag->track() << "\"" << endl;
cout << "genre - \"" << tag->genre() << "\"" << endl;
}
if(!f.isNull() && f.audioProperties()) {
TagLib::AudioProperties *properties = f.audioProperties();
int seconds = properties->length() % 60;
int minutes = (properties->length() - seconds) / 60;
cout << "-- AUDIO --" << endl;
cout << "bitrate - " << properties->bitrate() << endl;
cout << "sample rate - " << properties->sampleRate() << endl;
cout << "channels - " << properties->channels() << endl;
cout << "length - " << minutes << ":" << formatSeconds(seconds) << endl;
}
}
return 0;
}
示例5: mediaTag
bool mediaTag(Artwork *art, TagLib::File *f)
{
Q_ASSERT(f != NULL);
Q_ASSERT(f->tag());
TagLib::Tag *tag = f->tag();
art->filetype = FILETYPE_UNKNOWN;
// The basic stuff!!!
art->artist = TStringToQString(tag->artist()).trimmed();
art->album = TStringToQString(tag->album()).trimmed();
art->track = TStringToQString(tag->title()).trimmed();
art->genre = TStringToQString(tag->genre()).trimmed();
art->year = tag->year();
art->trackNo = tag->track();
// we need something to search on!
if (art->artist == "" && art->album == "" && art->track == "") {
return false;
}
// Any audio properties???
if (f->audioProperties()) {
TagLib::AudioProperties *properties = f->audioProperties();
int seconds = properties->length() % 60;
int minutes = (properties->length() - seconds) / 60;
art->duration = minutes * 60 + seconds;
art->bitRate = properties->bitrate();
art->sampleRate = properties->sampleRate();
art->channels = properties->channels();
}
art->makeSearchable();
return true;
}
示例6: parse
//.........这里部分代码省略.........
if (seconds_total > 0) {
int seconds = seconds_total % 60;
int minutes = (seconds_total - seconds) / 60;
int hours = minutes / 60;
minutes = minutes % 60;
if (hours > 0)
duration.sprintf("%d:%02d:%02d", hours, minutes, seconds);
else
duration.sprintf("%d:%02d", minutes, seconds);
} else {
duration = "<Unknown duration>";
*success = false;
}
res += duration;
} else if (ch == 'D') {
QString duration;
if (seconds_total == 0) {
duration = "<Unknown duration>";
*success = false;
} else {
duration = QString::number(seconds_total);
}
res += duration;
} else if (ch == 'B') {
QString str = QString::number(ap->bitrate());
if (str == "0") {
str = "<Unknown bitrate>";
*success = false;
}
res += str;
} else if (ch == 's') {
QString str = QString::number(ap->sampleRate() / (float)1000);
if (str == "0") {
str = "<Unknown sample rate>";
*success = false;
}
res += str;
} else if (ch == 'C') {
QString str = QString::number(ap->channels());
if (str == "0") {
str = "<Unknown channels number>";
*success = false;
}
res += str;
} else if (ch == 'f') {
res += QFileInfo(NTaglib::_filePath).baseName();
} else if (ch == 'F') {
res += QFileInfo(NTaglib::_filePath).fileName();
} else if (ch == 'p') {
res += QFileInfo(NTaglib::_filePath).absoluteFilePath();
} else if (ch == 'e') {
res += QFileInfo(NTaglib::_filePath).suffix();
} else if (ch == 'E') {
res += QFileInfo(NTaglib::_filePath).suffix().toUpper();
} else if (ch == 'v') {
res += QCoreApplication::applicationVersion();
} else {
res += ch;
}
} else if (format.at(i) == '{') {
++i;
int matchedAt = format.indexOf('}', i);
if (matchedAt == -1) {
res += "<condition error: unmatched '{'>";
return res;
}
QString condition = format.mid(i, matchedAt - i);
if (condition.indexOf('{') != -1) {
res += "<condition error: extra '{'>";
return res;
}
QStringList values = condition.split('|');
if (values.count() < 2) {
res += "<condition error: missing '|'>";
return res;
} else if (values.count() > 2) {
res += "<condition error: extra '|'>";
return res;
}
bool cond_res;
QString cond_true = parse(values.at(0), &cond_res, true);
if (cond_res) {
res += cond_true;
} else {
res += parse(values.at(1), &cond_res);
}
i = matchedAt;
} else {
res += format.at(i);
}
if (!*success && stopOnFail)
return "";
}
return res;
}
示例7: processTaglibFile
bool SoundSource::processTaglibFile(TagLib::File& f) {
if (s_bDebugMetadata)
qDebug() << "Parsing" << getFilename();
if (f.isValid()) {
TagLib::Tag *tag = f.tag();
if (tag) {
QString title = TStringToQString(tag->title());
setTitle(title);
QString artist = TStringToQString(tag->artist());
setArtist(artist);
QString album = TStringToQString(tag->album());
setAlbum(album);
QString comment = TStringToQString(tag->comment());
setComment(comment);
QString genre = TStringToQString(tag->genre());
setGenre(genre);
int iYear = tag->year();
QString year = "";
if (iYear > 0) {
year = QString("%1").arg(iYear);
setYear(year);
}
int iTrack = tag->track();
QString trackNumber = "";
if (iTrack > 0) {
trackNumber = QString("%1").arg(iTrack);
setTrackNumber(trackNumber);
}
if (s_bDebugMetadata)
qDebug() << "TagLib" << "title" << title << "artist" << artist << "album" << album << "comment" << comment << "genre" << genre << "year" << year << "trackNumber" << trackNumber;
}
TagLib::AudioProperties *properties = f.audioProperties();
if (properties) {
int lengthSeconds = properties->length();
int bitrate = properties->bitrate();
int sampleRate = properties->sampleRate();
int channels = properties->channels();
if (s_bDebugMetadata)
qDebug() << "TagLib" << "length" << lengthSeconds << "bitrate" << bitrate << "sampleRate" << sampleRate << "channels" << channels;
setDuration(lengthSeconds);
setBitrate(bitrate);
setSampleRate(sampleRate);
setChannels(channels);
}
// If we didn't get any audio properties, this was a failure.
return (properties!=NULL);
}
return false;
}
示例8: main
int main(int argc, char *argv[])
{
for(int i = 1; i < argc; i++) {
cout << "******************** \"" << argv[i] << "\" ********************" << endl;
TagLib::FileRef f(argv[i]);
if(!f.isNull() && f.tag()) {
TagLib::Tag *tag = f.tag();
cout << "-- TAG --" << endl;
cout << "title - \"" << tag->title() << "\"" << endl;
cout << "artist - \"" << tag->artist() << "\"" << endl;
cout << "album artist - \"" << tag->albumArtist() << "\"" << endl;
cout << "album - \"" << tag->album() << "\"" << endl;
cout << "year - \"" << tag->year() << "\"" << endl;
cout << "comment - \"" << tag->comment() << "\"" << endl;
cout << "track - \"" << tag->track() << "\"" << endl;
cout << "genre - \"" << tag->genre() << "\"" << endl;
cout << "grouping - \"" << tag->grouping() << "\"" << endl;
TagLib::Ogg::XiphComment *comment = NULL;
TagLib::FLAC::File *flac = dynamic_cast<TagLib::FLAC::File *>(f.file());
if (flac) {
cout << "flac:" << endl;
cout << "id3v1 - \"" << flac->ID3v1Tag() << "\"" << endl;
cout << "id3v2 - \"" << flac->ID3v2Tag() << "\"" << endl;
cout << "xiph - \"" << flac->xiphComment() << "\"" << endl;
comment = flac->xiphComment();
}
if (!comment) {
comment = dynamic_cast<TagLib::Ogg::XiphComment *>(tag);
}
if (comment) {
TagLib::Ogg::FieldListMap fields = comment->fieldListMap();
for(TagLib::Ogg::FieldListMap::ConstIterator it = fields.begin(), end = fields.end(); it != end; it++) {
if (!it->second.isEmpty())
cout << "xiph:" << it->first << " \"" << it->second[0].substr(0,3) << "\"" << endl;
}
}
cout << "pictures- \"" << f.file()->pictures().size() << "\"" << endl;
TagLib::File::PictureList l = f.file()->pictures();
for (TagLib::File::_PictureList::ConstIterator i = l.begin(), end = l.end(); i != end; i++) {
cout << "\t" << (*i)->typeName() << ' ' << (*i)->mimeType() << ' ' << (*i)->base64data().size() << endl;
}
cout << "pictures- \"" << tag->pictures().size() << "\"" << endl;
}
if(!f.isNull() && f.audioProperties()) {
TagLib::AudioProperties *properties = f.audioProperties();
int seconds = properties->length() % 60;
int minutes = (properties->length() - seconds) / 60;
cout << "-- AUDIO --" << endl;
cout << "bitrate - " << properties->bitrate() << endl;
cout << "sample rate - " << properties->sampleRate() << endl;
cout << "channels - " << properties->channels() << endl;
cout << "length - " << minutes << ":" << formatSeconds(seconds) << endl;
}
}
return 0;
}
示例9: f
//.........这里部分代码省略.........
if(!f.isNull() && f.audioProperties())
{
TagLib::AudioProperties *props = f.audioProperties();
if(props->length())
{
int min = props->length()/60;
int sec = props->length()%60;
std::stringstream temp;
temp << tr("Length") << ":\t";
temp << min << ":";
if(sec<=9)
temp << "0";
temp << sec << " " << tr("min");
fileInfo.push_back(temp.str());
}
if(props->bitrate())
{
std::stringstream temp;
temp << tr("Bitrate") << ":\t";
temp << props->bitrate() << " kb/s";
fileInfo.push_back(temp.str());
}
if(props->sampleRate())
{
std::stringstream temp;
temp << tr("Samplerate") << ":\t";
temp << props->sampleRate() << " Hz";
fileInfo.push_back(temp.str());
}
if(props->channels())
{
std::stringstream temp;
temp << tr("ID3$Channels") << ":\t";
temp << props->channels();
fileInfo.push_back(temp.str());
}
if(TagLib::MPEG::Properties* mpegProp = dynamic_cast<TagLib::MPEG::Properties*>(props))
{
#if 0
std::stringstream temp;
temp << tr("Original") << ":\t";
temp << mpegProp->isOriginal();
fileInfo.push_back(temp.str());
#endif
std::stringstream temp2;
temp2 << tr("MPEG-Layer") << ":\t";
temp2 << mpegProp->layer();
fileInfo.push_back(temp2.str());
#if 0
std::stringstream temp3;
temp3 << tr("Copyrighted") << ":\t";
temp3 << mpegProp->isCopyrighted();
fileInfo.push_back(temp3.str());
std::stringstream temp4;
temp4 << tr("Protected") << ":\t";
temp4 << mpegProp->protectionEnabled();
fileInfo.push_back(temp4.str());
#endif
}
}