質問編集履歴

6

タグの間違い

2021/11/04 06:07

投稿

pofinpouty
pofinpouty

スコア20

test CHANGED
File without changes
test CHANGED
File without changes

5

誤字

2021/11/04 06:07

投稿

pofinpouty
pofinpouty

スコア20

test CHANGED
File without changes
test CHANGED
@@ -54,8 +54,6 @@
54
54
 
55
55
  <?php
56
56
 
57
- //TrackingFolder配下のファイル一覧を取得
58
-
59
57
  $jpgfiles = glob("*.jpg");
60
58
 
61
59
  $pngfiles = glob("*.png");

4

文法の修正

2021/11/04 04:36

投稿

pofinpouty
pofinpouty

スコア20

test CHANGED
@@ -1 +1 @@
1
- [Unity] VideoPlayer設定した動画の音が出な
1
+ [PHP] httpサーバ上あるフォルダ配下のファイルを一覧表示したい
test CHANGED
@@ -1,293 +1,101 @@
1
- ARfoundationで画像認識時に動画を再生する開発を行なっています。
2
-
3
- 動画を再生することはできているですが、動画の音声が再生されない理由を知りたいです。
1
+ localhost/◯◯◯/AFolder中にA.jpg、b.png、sample.phpありSample.phpURLをたたいたときに「A.jpg,B.png」と表示される様にしたいです。
4
-
5
- 下記が画像認識に使用しているコードです。
6
2
 
7
3
 
8
4
 
9
- ```C#
5
+ 現状「A.jpg,B.png」と表示されてはいるのですが、問題点が多いのでご教授願いたいです。
10
6
 
7
+ PHPの現在のコードか下記です。
8
+
9
+ ```PHP
10
+
11
+ <?php
12
+
13
+ //glob("*.*")にするとphpファイルも含まれてしまうため分けている
14
+
15
+ $jpgfiles = glob("*.jpg");
16
+
11
- public class TestTracking : MonoBehaviour
17
+ $pngfiles = glob("*.png");
18
+
19
+ $tmp = $pngfiles;
20
+
21
+ foreach($jpgfiles as $value)
12
22
 
13
23
  {
14
24
 
15
- /// <summary>
25
+ echo $value;
16
26
 
17
- /// マーカー用オブジェクトのプレハブ
27
+ echo ",";
18
28
 
19
- /// </summary>
29
+ }
20
30
 
21
- [SerializeField] private VideoClip[] _arMovies;
31
+ foreach($pngfiles as $value)
22
32
 
33
+ {
23
34
 
35
+ echo $value;
24
36
 
25
- /// <summary>
37
+ if(next($tmp)){
26
38
 
27
- /// ARTrackedImageManager
28
-
29
- /// </summary>
30
-
31
- [SerializeField] private ARTrackedImageManager _imageManager;
32
-
33
-
34
-
35
- /// <summary>
36
-
37
- /// マーカー用オブジェクトのプレハブと文字列を紐づけた辞書
38
-
39
- /// </summary>
40
-
41
- private readonly Dictionary<string, VideoClip> _markerNameAndMovieDictionary = new Dictionary<string, VideoClip>();
42
-
43
-
44
-
45
- private AudioSource audioSource;
46
-
47
-
48
-
49
- private void Start()
50
-
51
- {
52
-
53
- _imageManager.trackedImagesChanged += OnTrackedImagesChanged;
54
-
55
-
56
-
57
- //マーカー名と動画を紐づける辞書の作成
58
-
59
- for (var i = 0; i < _arMovies.Length; i++)
60
-
61
- {
62
-
63
- var arPrefab = Instantiate(_arMovies[i]);
64
-
65
- arPrefab.name = _arMovies[i].name;
66
-
67
-
68
-
69
- for (var j = 0; j < _imageManager.referenceLibrary.count; j++)
70
-
71
- {
72
-
73
- if (_imageManager.referenceLibrary[j].texture.name == arPrefab.name)
74
-
75
- {
76
-
77
- _markerNameAndMovieDictionary.Add(_imageManager.referenceLibrary[j].name, arPrefab);
78
-
79
- break;
80
-
81
- }
82
-
83
- }
84
-
85
- }
86
-
87
- }
88
-
89
-
90
-
91
- private void OnDisable()
92
-
93
- {
94
-
95
- _imageManager.trackedImagesChanged -= OnTrackedImagesChanged;
96
-
97
- }
98
-
99
-
100
-
101
- /// <summary>
102
-
103
- /// 認識した画像マーカーに応じて紐づいたARオブジェクトを表示
104
-
105
- /// </summary>
106
-
107
- /// <param name="trackedImage">認識した画像マーカー</param>
108
-
109
- private void ActivateARObject(ARTrackedImage trackedImage)
110
-
111
- {
112
-
113
- VideoPlayer videoPlayer = GetComponent<VideoPlayer>();
114
-
115
- audioSource = gameObject.AddComponent<AudioSource>();
116
-
117
-
118
-
119
-
120
-
121
- Debug.Log("VIDEOLOG" );
122
-
123
- var canvas = trackedImage.GetComponentInChildren<Canvas>();
124
-
125
- var text = canvas.GetComponentInChildren<Text>();
126
-
127
-
128
-
129
- var planeParentGo = trackedImage.transform.GetChild(0).gameObject;
130
-
131
- var planeGo = planeParentGo.transform.GetChild(0).gameObject;
132
-
133
-
134
-
135
-
136
-
137
- //認識した画像マーカーの名前を使って辞書から任意のオブジェクトを引っ張り出す
138
-
139
- var arObject = _markerNameAndMovieDictionary[trackedImage.referenceImage.name];
140
-
141
- var imageMarkerTransform = trackedImage.transform;
142
-
143
- if (trackedImage.trackingState == TrackingState.Tracking)
144
-
145
- {
146
-
147
- Debug.Log("表示する");
39
+ echo ",";
148
-
149
- if (_markerNameAndMovieDictionary != null)
150
-
151
- {
152
-
153
- //位置合わせ
154
-
155
- var videoPlayerRotation = imageMarkerTransform.rotation * Quaternion.Euler(0f, 180f, 0f);
156
-
157
- var trackedFrontRotation = imageMarkerTransform.rotation * Quaternion.Euler(0f, 0f, 0f);
158
-
159
-
160
-
161
- var trackedPosition = new Vector3(trackedImage.transform.position.x, trackedImage.transform.position.y, trackedImage.transform.position.z);
162
-
163
-
164
-
165
- videoPlayer.transform.SetPositionAndRotation(imageMarkerTransform.transform.position, videoPlayerRotation);
166
-
167
- trackedImage.transform.SetPositionAndRotation(trackedPosition, trackedFrontRotation);
168
-
169
-
170
-
171
- //トラッキングの状態に応じてARオブジェクトの表示を切り替え
172
-
173
- videoPlayer.transform.localScale = new Vector3(trackedImage.size.x, 1f, trackedImage.size.y);
174
-
175
- trackedImage.transform.localScale = new Vector3(trackedImage.size.x, 1f, trackedImage.size.y);
176
-
177
- planeGo.transform.localScale = Vector3.zero;
178
-
179
-
180
-
181
- //音声トラック0番を使用可能にする
182
-
183
- videoPlayer.EnableAudioTrack(0, true);
184
-
185
- //音声トラック0番の出力先となるオーディオソースを指定
186
-
187
- videoPlayer.SetTargetAudioSource(0, audioSource);
188
-
189
- videoPlayer.clip = arObject;
190
-
191
- videoPlayer.Play();
192
-
193
-
194
-
195
- }
196
-
197
-
198
-
199
- }
200
-
201
- else
202
-
203
- {
204
-
205
-
206
-
207
- Debug.Log("表示しない");
208
-
209
- if (_markerNameAndMovieDictionary != null)
210
-
211
- {
212
-
213
- videoPlayer.transform.localScale = Vector3.zero;
214
-
215
- //再認識した際に、動画を途中から再生
216
-
217
- videoPlayer.Pause();
218
-
219
- }
220
-
221
- }
222
-
223
-
224
-
225
-
226
-
227
- }
228
-
229
-
230
-
231
- /// <summary>
232
-
233
- /// TrackedImagesChanged時の処理
234
-
235
- /// </summary>
236
-
237
- /// <param name="eventArgs">検出イベントに関する引数</param>
238
-
239
- private void OnTrackedImagesChanged(ARTrackedImagesChangedEventArgs eventArgs)
240
-
241
- {
242
-
243
- foreach (var trackedImage in eventArgs.added)
244
-
245
- {
246
-
247
- ActivateARObject(trackedImage);
248
-
249
- }
250
-
251
-
252
-
253
- foreach (var trackedImage in eventArgs.updated)
254
-
255
- {
256
-
257
- ActivateARObject(trackedImage);
258
-
259
- }
260
40
 
261
41
  }
262
42
 
263
43
  }
264
44
 
265
-
45
+ ?>
266
46
 
267
47
  ```
268
48
 
269
- ActivateARObjectメソッドの中で、
270
-
271
- >//音声トラック0番を使用可能にする
272
-
273
- >videoPlayer.EnableAudioTrack(0, true);
274
-
275
- >//音声トラック0番の出力先となるオーディオソースを指定
276
-
277
- >videoPlayer.SetTargetAudioSource(0, audioSource);
278
49
 
279
50
 
51
+ 上記コードの場合、AFolderの中身がjpgファイルのみだと「A.jpg,」とカンマが付け加えられてしまいます。
280
52
 
281
- を記述したことにより音が出ると思っていたのですが、アプリ起動後一番最初に再生した動画の音は出ず、別動画の再生後から音が出る様になります。
53
+ ```PHP
282
54
 
283
- 試したこととして、音声トラックを使用可能にするタイミングと動画の再生を同じタイミングで行なっているため追いついていないのかと思いStartメソッドで使用可能の準備を整えてから再生すればできると思ったのですが、結果は同じでした。
55
+ <?php
284
56
 
57
+ //TrackingFolder配下のファイル一覧を取得
285
58
 
59
+ $jpgfiles = glob("*.jpg");
286
60
 
61
+ $pngfiles = glob("*.png");
287
62
 
63
+ $jpgtmp = $jpgfiles;//追加
288
64
 
289
- 開発環境
65
+ $tmp = $pngfiles;
290
66
 
291
- ・Unity2020.3.11f1
67
+ foreach($jpgfiles as $value)
292
68
 
69
+ {
70
+
71
+ echo $value;
72
+
73
+ if(next($jpgtmp)){//追加
74
+
75
+ echo ",";
76
+
77
+ }//追加
78
+
79
+ }
80
+
293
- ・ARFoundation 4.2.0-pre.9
81
+ foreach($pngfiles as $value)
82
+
83
+ {
84
+
85
+ echo $value;
86
+
87
+ if(next($tmp)){
88
+
89
+ echo ",";
90
+
91
+ }
92
+
93
+ }
94
+
95
+ ?>
96
+
97
+ ```
98
+
99
+ の様にして試してみたのですが、この場合「A.jpgB.png」となるので思う様にいきません
100
+
101
+ どの様にしたら不備なく「A.jpg,B.png」と表示できますでしょうか。

3

開発環境のミス

2021/11/04 04:34

投稿

pofinpouty
pofinpouty

スコア20

test CHANGED
File without changes
test CHANGED
@@ -290,8 +290,4 @@
290
290
 
291
291
  ・Unity2020.3.11f1
292
292
 
293
- ・Xcode12.5
294
-
295
- ・iPhoneSE(OS14.6)
296
-
297
293
  ・ARFoundation 4.2.0-pre.9

2

タグのつけ間違え

2021/10/20 00:54

投稿

pofinpouty
pofinpouty

スコア20

test CHANGED
File without changes
test CHANGED
File without changes

1

タグのつけ間違え

2021/10/20 00:52

投稿

pofinpouty
pofinpouty

スコア20

test CHANGED
File without changes
test CHANGED
File without changes