回答編集履歴
1
質問の編集に対応するよう回答を書き直し
answer
CHANGED
@@ -1,22 +1,12 @@
|
|
1
|
+
※私が回答を書いている間に質問が編集されたようなので、回答を書き直しました。
|
2
|
+
|
1
3
|
`axWindowsMediaPlayer1`は、[AxWindowsMediaPlayer](https://msdn.microsoft.com/ja-jp/library/windows/desktop/dd562388(v=vs.85).aspx) のインスタンスだと仮定します。
|
2
4
|
|
3
|
-
```
|
5
|
+
```c#
|
4
|
-
|
6
|
+
for(int i=0;i < axWindowsMediaPlayer1.currentMedia.duration; i++)
|
5
7
|
```
|
6
|
-
|
8
|
+
`int`でループを回しているので、`axWindowsMediaPlayer1.currentMedia.duration`が秒数だとすると秒ごとの画像しか保存できません。
|
7
|
-
な
|
9
|
+
無理やりやるなら、ここのループを`for`ではなく`while`で回す、でしょうか。
|
10
|
+
ただ、ちょっとどうかなとは思います……。
|
8
11
|
|
9
|
-
ということで上記の`foreach`を外して、
|
10
|
-
```lang:csharp
|
11
|
-
//確認用にファイル出力
|
12
|
-
bmp.Save("C:\\entrypic\\"+i+".png");
|
13
|
-
```
|
14
|
-
を
|
15
|
-
```lang:csharp
|
16
|
-
//確認用にファイル出力
|
17
|
-
|
12
|
+
`PlayStateChange`イベントではなく、[`PositionChange` イベント](https://msdn.microsoft.com/ja-jp/library/windows/desktop/dd562462(v=vs.85).aspx)で画像を保存してはどうでしょうか。
|
18
|
-
```
|
19
|
-
とでも変えてみると、とりあえずエラーは出なくなるのではないでしょうか。
|
20
|
-
|
21
|
-
ただし上記の修正をしただけだと、再生開始時の画像1枚が保存されるだけになりそうです。
|
22
|
-
`axWindowsMediaPlayer1_PlayStateChange`メソッドではないところで、画像の保存をしたほうが良いように思えます。
|