3

C言語の経験がない前提で、アプリの公開を進めることができない問題を解決したいと考えています。

ファイル変換に ffmeg を使用するネイティブ関数があり、これを Android から AsyncTask で呼び出します。

ネイティブ関数を停止する必要があり、いくつかの方法で試しました:

1) すべての変数をリセットする関数「deleteRutine」を C で作成しました。(動作していません)

2) boolean 変数を変換する関数に追加し、Android のメソッドで false に設定しました (動作しません)。

他に何を試すことができますか?何かアドバイス?

4

2 に答える 2

2

rui.araujo が述べたように、適切に実装されていれば、2 番目の方法が機能するはずです。

Android からネイティブ関数に渡すブール値を出力し、正しく渡されているかどうかを確認します。ほとんどの場合、コード フラグが変更されていないため、JNI メソッドの実装に問題がある可能性があります。

コードは次のようになります。

while(FLAG==true)
{
     //Do Your task
}
return;

適切に実装されていれば、これは確実に機能するはずです。私はこれを多くの同様の状況で使用しました..それでも問題がある場合は、投稿を編集して、2 番目の実装のコード スニペットを投稿してください...

于 2012-05-08T05:02:37.943 に答える
0

クロス コンパイルされた ffmpeg バイナリを使用している場合、変換が完了するとすぐにネイティブ メソッドが返されます。停止する最善の方法が必要な場合は、http: //developer.android.com/reference/android/os/Process.htmlを使用して終了信号を送信することです。変換中のファイルを適切に終了/閉じるためです。

于 2012-11-09T17:26:21.823 に答える