Unsolved How to get QMediaPlayer to play a network file on a Mac?
-
Hello
I'm working on an application that will use a QMediaPlayer widget, and which will need to work on both PC and Mac.
I have a series of UNC paths to video files that are stored on a server (the fact these are stored in Windows-style UNC paths is a legacy thing and can't be changed). They are of the format "\11.22.33.44\path\movie.mp4". I need to be able to get QMediaPlayer to open these files and play them from the server.
On Windows, there's no problem- QMediaPlayer is playing the media files really nicely indeed, I'm very happy.
However on Mac, I am hitting a "Failed to load media" message no matter what I try. I've tried various combinations of Samba prefixes, QUrl's setScheme method, and so on- but any path that involves an IP address is always hitting "Failed to load media", every time, with any path of a format like "smb://11.22.33..44/path/movie.mp4".
If I use a QFileDialog and browse manually to the file, then the file will definitely play on a Mac. The QUrl then reports as "file:///Volumes/path/movie.mp4" and it plays fine. However I don't know how to translate a "smb://" path into a "file:///Volumes/" path, and as it stands I don't think it can be assumed that the drive will already be mounted.
Please can someone give me a pointer on how to get a QMediaPlayer playing a remote file on a Mac?
Thanks
Stuart
-
The QFileDialog is generating a path which QMediaPlayer will then read from, but only if I manually navigate to the file using a QFileDialog front-end and tell it exactly where it is.
My problem is simpler and more fundamental than I first implied, and involves trying to convert a string "\11.22.33.44\path\movie.mp4" into a valid MacOS path that any function (e.g. shutil.copyfile) will accept.
-
Hi and welcome to devnet,
Where do you get that string from ? Usually on *nix OSs all paths are using forward slashes.
In any case, you have QDir::toNativeSeparators to get a path which can be passed to function expecting such a string.
-
Thanks for the response.
The paths are from an existing piece of software which has stored the paths of lots of files as strings in a database. That existing software has been Windows-only for years so until now there was no issue with using UNC paths, but this new code I'm working on needs to be both Windows- and Mac-friendly, hence the UNC paths suddenly being a problem.
In order to move something forward I'm now working on automatically mounting the required servers when needed. I don't know whether this is the only way to do it on a Mac for QMediaPlayer use, or whether this is a temporary workaround and there may be a better solution I haven't found yet.