add proper exception handling to winrt

This commit is contained in:
EinTim23 2025-05-10 22:13:36 +02:00
parent 6807fe00fa
commit 66a25e62f2
1 changed files with 47 additions and 42 deletions

View File

@ -92,13 +92,15 @@ std::shared_ptr<MediaInfo> backend::getMediaInformation() {
return nullptr; return nullptr;
auto playbackInfo = currentSession.GetPlaybackInfo(); auto playbackInfo = currentSession.GetPlaybackInfo();
try {
auto mediaProperties = currentSession.TryGetMediaPropertiesAsync().get(); auto mediaProperties = currentSession.TryGetMediaPropertiesAsync().get();
auto timelineInformation = currentSession.GetTimelineProperties(); auto timelineInformation = currentSession.GetTimelineProperties();
if (!mediaProperties) if (!mediaProperties)
return nullptr; return nullptr;
auto endTime = std::chrono::duration_cast<std::chrono::milliseconds>(timelineInformation.EndTime()).count(); auto endTime = std::chrono::duration_cast<std::chrono::milliseconds>(timelineInformation.EndTime()).count();
auto elapsedTime = std::chrono::duration_cast<std::chrono::milliseconds>(timelineInformation.Position()).count(); auto elapsedTime =
std::chrono::duration_cast<std::chrono::milliseconds>(timelineInformation.Position()).count();
auto thumbnail = mediaProperties.Thumbnail(); auto thumbnail = mediaProperties.Thumbnail();
std::string thumbnailData = ""; std::string thumbnailData = "";
@ -136,6 +138,9 @@ std::shared_ptr<MediaInfo> backend::getMediaInformation() {
playbackInfo.PlaybackStatus() == GlobalSystemMediaTransportControlsSessionPlaybackStatus::Paused, playbackInfo.PlaybackStatus() == GlobalSystemMediaTransportControlsSessionPlaybackStatus::Paused,
toStdString(mediaProperties.Title()), std::move(artist), std::move(albumName), std::move(modelId), toStdString(mediaProperties.Title()), std::move(artist), std::move(albumName), std::move(modelId),
std::move(thumbnailData), endTime, elapsedTime); std::move(thumbnailData), endTime, elapsedTime);
} catch (...) {
return nullptr;
}
} }
bool backend::init() { bool backend::init() {