質問です。
下記のムービー再生関数を60FPSのスピードでループしてムービー再生しているのですが
必ずではないのですが、よく再生時に音ズレしてしまうのです。
いきなり0.5秒程度経過したムービー画面になり、遅れて音が再生されるのです。
凄く稚拙なコードなのはともかく、どこが悪いのかわかりません・・・
int op_saisei(){
int tyudan=0;
//ムービー再生してなかったら、最初にシークして開始
if(op_movieF==0 && GetMovieStateToGraph(op_movie)==0){
SeekMovieToGraph(op_movie,0);
PlayMovieToGraph(op_movie);
DrawExtendGraph( 0,0,640,480, op_movie , FALSE ) ;
op_movieF=1;
return 1;
//ムービーが終了していたら0を返す
}else if(op_movieF==1 && GetMovieStateToGraph(op_movie)==0){
func_state=2;
return 0;
//ムービーが中断していたら再生フェード、中断終了したら0を返す
}else if(op_movieF==3){
PauseMovieToGraph( op_movie ) ;
tyudan=fadeout1(3);
if(tyudan==0){
func_state=2;
return 0;
}else{DrawExtendGraph( 0,0,640,480, op_movie , FALSE ) ;tyudan=fadeout1(3);
return 3;
}
}
//中断処理
if(GetJoypadInputState(DX_INPUT_KEY_PAD1)!=0){
op_movieF=3;
DrawExtendGraph( 0,0,640,480, op_movie , FALSE )
;return 3;
}
DrawExtendGraph( 0,0,640,480, op_movie , FALSE ) ;
return 2;
}
ちなみに動画形式はOGVです。
こんなんですけど回答いただければありがたいです。