OpenSL ES を使用して音楽プレーヤーを作成しました。ライブラリから警告メッセージが1つ出てくる以外は問題なく動作しlibOpenSLES
ます。これがメッセージです。
03-05 00:10:15.367: W/libOpenSLES(12055): Missed SL_PLAYEVENT_HEADATNEWPOS for position 7000; current position 724009
...
03-05 00:10:27.226: W/libOpenSLES(12055): Missed SL_PLAYEVENT_HEADATNEWPOS for position 329015; current position 816013
メディアトラックを探しているときに来ます。警告なしでシークできる場合もあれば、ログにメッセージが表示される場合もあります。
実装は非常に簡単です。初期化時に、シーク コントロールを取得します。
SLObjectItf decoder;
SLSeekItf seek;
...
SLresult result = (*decoder)->GetInterface(decoder, SL_IID_SEEK, &seek);
その後、ユーザーがトラック位置を変更すると、次のようにSetPosition
メソッドを呼び出します。
SLresult result = (*seek)->SetPosition(seek, position, SL_SEEKMODE_ACCURATE);
どちらの呼び出しも成功の結果を返し、位置の変更も常に機能します。唯一の問題は、上記の警告メッセージです。
このメッセージが表示される理由とそれを回避する方法はありますか?
アップデート:
賞金の半分は自動的に割り当てられましたが、質問にはまだ答えがありません。問題の原因と回避方法はわかりません。