Воспроизведение звука с помощью предварительного просмотра Ubuntu QML Toolkit

9

Я установил Ubuntu QML Toolkit Preview согласно инструкциям на http://developer.ubuntu.com/get-started/gomobile/ (с небольшой скрипкой, чтобы он заработал на 12.04). Я пытаюсь написать приложение, которое воспроизводит звуковой файл. По-видимому, вы можете сделать это с помощью QtMultiMediakit в QtQuick 1, но не в QtQuick 2, как это используется инструментарием.

Можно ли написать приложение, используя набор инструментов, который воспроизводит звук?

marxjohnson
источник
Просто интересно, какими инструкциями вы руководствовались при установке Ubuntu на Nexus 7?
mlvljr
1
Я не уверен, какая часть моего поста предполагает, что я запускаю Ubuntu на Nexus 7, но это не так.
marxjohnson
хорошо, я собираюсь сделать это сам, и, очевидно, был слишком взволнован :) Но разве инструментарий Ubuntu QML не нацелен на телефоны / планшеты?
mlvljr

Ответы:

8

Проблема решена, ответ заключается в использовании QtMultimedia 5.0, который теперь предоставляет элемент Audio.

http://qt-project.org/doc/qt-5.0/qtmultimedia/qml-qtmultimedia5-audio.html

marxjohnson
источник
В моем случае мне, казалось, нужно было libqt5multimedia5-pluginsустановить, и SDK по умолчанию этого не делал.
Andrewsomething
3

Вот быстрый пример того, как воспроизвести mp3-файл, используя компонент MediaPlayer из QtMultimedia и инструментарий Ubuntu UI:

import QtQuick 2.0
import Ubuntu.Components 0.1
import QtMultimedia 5.0

MainView {
    width: units.gu(100)
    height: units.gu(75)

    Page {
        title: i18n.tr("Simple Player")

        MediaPlayer {
            id: player
            source: "foo.mp3"
            onStatusChanged: {
                if (status == MediaPlayer.EndOfMedia) {
                    button.pressed = false
                    button.text = i18n.tr("Play")
                }
            }
        }

        Button {
            anchors.centerIn: parent
            id: button
            text: i18n.tr("Play")
            pressed: false
            onClicked: {
                if (player.playbackState == 1){
                    player.stop()
                    pressed = false
                    text = i18n.tr("Play")
                }
                else{
                    pressed = true
                    text = i18n.tr("Stop")
                    player.play()
               }
            }
        }
    }
}

Это выглядит так:

пример проигрывателя

andrewsomething
источник