Dasturlash II 15-hafta mavzu: qt muhitida multimediyali fayllar bilan ishlash



Download 2,32 Mb.
bet5/7
Sana29.04.2022
Hajmi2,32 Mb.
#592293
1   2   3   4   5   6   7
Bog'liq
D2 maruza-15

#include
#include
#include
#include
#include

  1. Keyin, QMediaPlayer ko`rsatgichi bo`ladigan player o`zgaruvchisini qo`shamiz. Undan so`ng, keyinroq aniqlanadigan funksiyalarni e’lon qilamiz:

private:
Ui::MainWindow *ui;
QMediaPlayer* player;
public:
void stateChanged(QMediaPlayer::State state);
void positionChanged(qint64 position);

  1. Keyin mainwindow.cpp ni ochamiz va player ni yuklaymiz:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
player = new QMediaPlayer(this);
player->setVolume(ui->volume->value());
connect(player, &QMediaPlayer::stateChanged, this,
&MainWindow::stateChanged);
connect(player, &QMediaPlayer::positionChanged, this,
&MainWindow::positionChanged);
}
QMediaPlayer sinfi bizning dasturimiz tomonidan yuklangan audio fayllarni qo`yish uchun mo`ljallangan asosiy sinf. Shunday qilib, biz qo`yilayotgan audio fayl holatini va uning joriy pozitsiyasini bilishimiz kerak. Bunday ma’lumotlarni uning stateChanged() va positionChanged() signallarini bizning slot funksiyamizga yuborish orqali olishimiz mumkin.

  1. stateChanged() bizga audio faylning joriy qo`yilish holati haqidagi ma’lumotlarni olishga imkon beradi. Keyin biz Push Button tugmasini mos ravishda qo`shamiz va o`chirib qo`yamiz.

void MainWindow::stateChanged(QMediaPlayer::State state)
{
if (state == QMediaPlayer::PlayingState)
{
ui->playButton->setEnabled(false);
ui->pauseButton->setEnabled(true);
ui->stopButton->setEnabled(true);
}
else if (state == QMediaPlayer::PausedState)
{
ui->playButton->setEnabled(true);
ui->pauseButton->setEnabled(false);
ui->stopButton->setEnabled(true);
}
else if (state == QMediaPlayer::StoppedState)
{
ui->playButton->setEnabled(true);
ui->pauseButton->setEnabled(false);
ui->stopButton->setEnabled(false);
}
}

  1. Xuddi positionChanged() va slot funksiyalari kabi, ulardan vaqt chizig`i (timeline)ni bo`laklash uchun, vaqtni hisoblash oynasi sifatida o`rnatamiz:

void MainWindow::positionChanged(qint64 position)
{
if (ui->progressbar->maximum() != player->duration())
ui->progressbar->setMaximum(player->duration());
ui->progressbar->setValue(position);
int seconds = (position/1000) % 60;
int minutes = (position/60000) % 60;
int hours = (position/3600000) % 24;
QTime time(hours, minutes,seconds);
ui->durationDisplay->setText(time.toString());
}

  1. Endi mainwindow.h ni ochamiz va har bir tugma vidjetiga o`ng tugmani bosgan holda, Go to slot... buyrug`ini tanlaymiz va clicked() signalini belgilaymiz. Bu orqali biz muayyan tugma uchun, u bosilganida bajariluvchi ishlarga xos kodlarni tarkibiga oluvchi slotlarni tuzib chiqamiz:

void MainWindow::on_playButton_clicked()
{
player->play();
}
void MainWindow::on_pauseButton_clicked()
{
player->pause();
}
void MainWindow::on_stopButton_clicked()
{
player->stop();
}

  1. Shundan so`ng, Horizontal Slider ga o`ng tugmani bosamiz va Go to slot... buyrug`ini va sliderMoved() signalni tanlab, OK tugmasini bosamiz:



  1. sliderMoved() signali foydalanuvchi audio qo`yilishi pozitsiyasini o`zgartirish uchun uning ustiga bosganida ishga tushadi. Aytaylik, biz bu pozitsiyaning media playerga uzatilishini va unga audio faylning ovozini yoki qo`yilish pozitsiyasini o`zgartirish haqida xabar yuborishini istaymiz. Bunda audio faylning ovoz balandligi qiymatini 0 qilib qo`yishdan ehtiyot bo`lish kerak. Quyidagi kodni ko`rib chiqamiz:

void MainWindow::on_volume_sliderMoved(int position)
{
player->setVolume(position);
}
void MainWindow::on_progressbar_sliderMoved(int position)
{
player->setPosition(position);
}

  1. Endi oldingi loyihamizdagi kabi, File meyular qatorini va uning tarkibida Open File menyusini yaratamiz va unga harakat (action) qo`shamiz.


  2. Download 2,32 Mb.

    Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish