57588


最近、Qtの質問ばかりさせて頂いているKaedeです。

表題の件につきまして、探し方がよろしくないのか目的に該当する資料が見つけられません。

やりたい事としては、 **動画ファイルをSDに保存したり、SDから読みだして再生** したいのです。

そこで教えて頂きたいのが、

  * QtのAPIまたはサンプルコードでSDカードにデータを読み書きするものはあるか
  * (上記がない場合)Qtで使用できる **外部** のAPIなどについて

上記の2つに関してです。  
「OSによって処理が変わる」などの場合は **Windows** か **Linux** の場合についてお教えいただきたいです。

外部ストレージ初心者で、正直どう扱うのか想像もできないので…(;'∀')  
何かご存知の方はご教授お願い致します。


CC BY-SA 4.0
2019-08-23T08:46:23.840
57566
2019-08-25T09:44:19.733
35314
question
c++ qt qt5 qt-creator
Qtを用いたSDカードのデータ(動画ファイルなど)の読み書きについて


WindowsやLinuxの場合、SDカードであることを意識する必要はないので、通常のファイルと同様の処理をすればよいと思います。  
つまり、[QFile](https://doc.qt.io/qt-5/qfile.html)クラスでオープンしたいファイルパスを指定して、

  * 読み取るのであれば、`QIODevice::ReadOnly`等を引数にして`open()`を呼び出し、`read()`で読み出し
  * 書き出すのであれば、`QIODevice::WriteOnly`等を引数にして`open()`を呼び出し、`write()`で書き出し

という処理を行えばよいと思います。  
Qt付属のサンプルプログラムで`QFile`をメインにしたものは見当たりませんでしたが、`QFile`の説明にコードサンプルが載っているので、それを参考にしてはどうでしょうか?

* * *

なお、動画の読み書き(再生/録画)であれば、Qt Multimedia のモジュールを使った方が楽かもしれません。

  * 再生であれば[QMediaPlayer](https://doc.qt.io/qt-5/qmediaplayer.html)や、[QVideoWidget](https://doc.qt.io/qt-5/qvideowidget.html)。
  * 録画であれば[MediaRecorder](https://doc.qt.io/qt-5/qmediarecorder.html)

どの場合も、ファイルを明示的に読み書きしなくても、ファイルパス(`QUrl`)を指定してやればモジュール内で適切に処理してくれると思います。


CC BY-SA 4.0
2019-08-25T09:44:19.733
57588
2019-08-25T09:44:19.733
20098
57566
answer