2024-10-08 14:34:52 +08:00
|
|
|
#include "videoService.h"
|
2024-09-09 13:20:59 +08:00
|
|
|
#include <SFML/Graphics.hpp>
|
2024-10-08 14:34:52 +08:00
|
|
|
#include <UtilTool.h>
|
|
|
|
#include <imageService.h>
|
2024-09-30 13:34:05 +08:00
|
|
|
#include <memory>
|
2024-10-08 14:34:52 +08:00
|
|
|
#include <string>
|
2024-09-09 13:20:59 +08:00
|
|
|
|
2024-10-08 14:34:52 +08:00
|
|
|
class MediaService {
|
|
|
|
private:
|
2024-09-09 13:20:59 +08:00
|
|
|
ImageService *imageService = nullptr;
|
2024-09-30 16:11:07 +08:00
|
|
|
VideoService *videoService = nullptr;
|
2024-09-09 13:20:59 +08:00
|
|
|
MediaType type;
|
2024-09-30 13:34:05 +08:00
|
|
|
std::shared_ptr<sf::Texture> texture;
|
|
|
|
std::shared_ptr<sf::Sprite> sprite;
|
|
|
|
std::shared_ptr<sf::RenderWindow> window;
|
2024-09-09 13:20:59 +08:00
|
|
|
int client_width = 0;
|
2024-10-08 14:34:52 +08:00
|
|
|
int client_height = 0;
|
|
|
|
|
|
|
|
public:
|
|
|
|
MediaService(std::shared_ptr<sf::RenderWindow> window,
|
|
|
|
const std::string &filename, int width, int height);
|
|
|
|
~MediaService() {
|
2024-09-30 16:11:07 +08:00
|
|
|
delete imageService;
|
|
|
|
delete videoService;
|
|
|
|
}
|
2024-10-08 14:34:52 +08:00
|
|
|
std::shared_ptr<sf::Sprite> GetSprite() { return sprite; }
|
2024-09-30 13:34:05 +08:00
|
|
|
void Play();
|
|
|
|
};
|