Я работаю над пользовательским компонентом QT для создания своего собственного проигрывателя iOS (так как мне нужна измененная версия его MediaPlayer по умолчанию для DRM).
Пока мне удалось создать простой компонент. *Заголовочный файл 1003 *
:
#include <QObject>
#include <QQuickItem>
class CustomPlayer : public QQuickItem
{
Q_OBJECT
private:
public:
CustomPlayer(QQuickItem *parent = 0);
Q_INVOKABLE void play();
};
mm file:
#include <Foundation/Foundation.h>
#include <sys/utsname.h>
#include <UIKit/UIKit.h>
#include <AVFoundation/AVFoundation.h>
#include <AVKit/AVKit.h>
#include "customplayer.h"
//===================================
CustomPlayer::CustomPlayer(QQuickItem *parent)
: QQuickItem(parent)
{
}
void CustomPlayer::play()
{
AVPlayer *_player;
AVURLAsset *_asset;
AVPlayerItem *_playerItem;
_player = [[AVPlayer alloc] init];
NSURL *baseURL = [[NSURL alloc] initWithString: @"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"];
_asset = [AVURLAsset assetWithURL:baseURL];
_playerItem = [AVPlayerItem playerItemWithAsset: _asset];
[_player replaceCurrentItemWithPlayerItem:_playerItem];
[_player play];
}
Это все еще очень грубая версия, но с этим я могу использовать CustomPlayer в своем коде QML.Но я борюсь с тем, чтобы создать слой для отображения видео.
Я пытаюсь понять, как в QT создан MediaPlayer, взглянув на исходный код в qtmultimedia но мне трудно понять это.Как создать выход для плеера, чтобы он отображался внутри компонента CustomPlayer?