質問編集履歴
4
ギャラリーのパスを取得する方法を知りたいと言うことを改めて伝えるため。
title
CHANGED
File without changes
|
body
CHANGED
@@ -46,7 +46,11 @@
|
|
46
46
|
|
47
47
|
### わからないこと
|
48
48
|
動画の保存先としてギャラリーを指定する方法と、ギャラリーのパスを取得する方法がわかりません。
|
49
|
+
|
49
50
|
調査すると、画像ファイルをギャラリーにコピーする方法などは見受けられましたが、動画ファイルをコピーしている例は見当たらず苦戦しています。
|
51
|
+
|
52
|
+
そもそも、ギャラリーにデータをコピーするといった周りくどい方法ではなく、ギャラリーのパスを指定する構文か何かで簡単にパスを指定できないものなのでしょうか。
|
53
|
+
|
50
54
|
以下の参考サイトをもとに実装を試みているのですが、うまくいっていない状態です。
|
51
55
|
また、エラーの内容ですが、lateinitに何を入れるべきなのかが分からず、このようなエラーが出てしまっています。
|
52
56
|
ですが、以下の記載を無くしてしまうと、存在しないプロパティとしてエラーが発生してしまいます。
|
3
ギャラリーについての説明が不足しているように感じたため。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
### やりたいこと
|
2
2
|
表題の通りですが、自作のカメラアプリで録画した動画ファイルを直接ギャラリーに保存できるようにしたいです。
|
3
3
|
つまり、以下の「やったこと」で記載している「setOutputFile」のパスとして、ギャラリーのパスを直接指定したいです。
|
4
|
+
ここで言うギャラリーとは、端末既存のカメラアプリで撮影したデータが保存されるデフォルトのフォルダのことを指します。
|
4
5
|
### やったこと
|
5
6
|
現在、以下のコードでパスを取得し、アプリ独自の外部ストレージを指定して動画を保存することはできています。
|
6
7
|
```kotlin
|
2
現状をよりよく理解してもらうため。
title
CHANGED
File without changes
|
body
CHANGED
@@ -23,8 +23,6 @@
|
|
23
23
|
|
24
24
|
また、サイトを参考に、現在以下のように実装をしているのですが、エラーが発生してしまっております。
|
25
25
|
```kotlin
|
26
|
-
lateinit var contentResolver: ContentResolver
|
27
|
-
...
|
28
26
|
// ギャラリーにデータを保存する
|
29
27
|
private fun saveFile(f: File) {
|
30
28
|
Log.i("録画", "ギャラリー保存準備")
|
@@ -36,13 +34,13 @@
|
|
36
34
|
put("_data", f.absolutePath)
|
37
35
|
}
|
38
36
|
Log.i("録画", "ギャラリー保存開始")
|
39
|
-
|
37
|
+
ContentResolver.insert(
|
40
38
|
MediaStore.Video.Media.EXTERNAL_CONTENT_URI, contentValues)
|
41
39
|
}
|
42
40
|
```
|
43
41
|
###### エラー内容
|
44
42
|
```
|
45
|
-
|
43
|
+
Importを追記することを促されますが、提案通りにImportを選択しても何も改善されず、エラー(文字が赤くなっている)状態。
|
46
44
|
```
|
47
45
|
|
48
46
|
### わからないこと
|
1
やったことをより詳細に伝えるため。
title
CHANGED
File without changes
|
body
CHANGED
@@ -20,10 +20,40 @@
|
|
20
20
|
```kotlin
|
21
21
|
setOutputFile(nextVideoAbsolutePath) // 出力ファイルパスを設定
|
22
22
|
```
|
23
|
+
|
24
|
+
また、サイトを参考に、現在以下のように実装をしているのですが、エラーが発生してしまっております。
|
25
|
+
```kotlin
|
26
|
+
lateinit var contentResolver: ContentResolver
|
27
|
+
...
|
28
|
+
// ギャラリーにデータを保存する
|
29
|
+
private fun saveFile(f: File) {
|
30
|
+
Log.i("録画", "ギャラリー保存準備")
|
31
|
+
val stream = FileOutputStream(f)
|
32
|
+
stream.close()
|
33
|
+
Log.i("録画", "ギャラリー保存設定")
|
34
|
+
val contentValues = ContentValues().apply {
|
35
|
+
put(MediaStore.Video.Media.MIME_TYPE, "video/mp4")
|
36
|
+
put("_data", f.absolutePath)
|
37
|
+
}
|
38
|
+
Log.i("録画", "ギャラリー保存開始")
|
39
|
+
contentResolver.insert(
|
40
|
+
MediaStore.Video.Media.EXTERNAL_CONTENT_URI, contentValues)
|
41
|
+
}
|
42
|
+
```
|
43
|
+
###### エラー内容
|
44
|
+
```
|
45
|
+
lateinit property contentResolver has not been initialized
|
46
|
+
```
|
47
|
+
|
23
48
|
### わからないこと
|
24
49
|
動画の保存先としてギャラリーを指定する方法と、ギャラリーのパスを取得する方法がわかりません。
|
25
50
|
調査すると、画像ファイルをギャラリーにコピーする方法などは見受けられましたが、動画ファイルをコピーしている例は見当たらず苦戦しています。
|
26
51
|
以下の参考サイトをもとに実装を試みているのですが、うまくいっていない状態です。
|
52
|
+
また、エラーの内容ですが、lateinitに何を入れるべきなのかが分からず、このようなエラーが出てしまっています。
|
53
|
+
ですが、以下の記載を無くしてしまうと、存在しないプロパティとしてエラーが発生してしまいます。
|
54
|
+
```kotlin
|
55
|
+
lateinit var contentResolver: ContentResolver
|
56
|
+
```
|
27
57
|
|
28
58
|
引き続き調査と検証を続けますが、解決法をご存知の方がいらっしゃいましたらご教授いただけますと幸いです。
|
29
59
|
### 参考にしたサイト
|