1
イメージをビデオに変換しようとしています。サンプルコードを見つけてアプリケーションに使用しました。java.io.FileNotFoundException:output.mp4(読み取り専用ファイルシステム)
public class Main2Activity extends AppCompatActivity {
AndroidSequenceEncoder encoder;
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
ArrayList<Bitmap> arrayList = new ArrayList<>();
Bitmap b = BitmapFactory.decodeResource(getResources(),R.drawable.empty_collage);
Bitmap a = BitmapFactory.decodeResource(getResources(),R.drawable.images);
arrayList.add(a);
arrayList.add(b);
File file = new File("output.mp4");
SeekableByteChannel out = null;
try {
out = (SeekableByteChannel) NIOUtils.writableFileChannel(String.valueOf(file));
} catch (FileNotFoundException e) {
e.printStackTrace();
Log.e("msg",e.toString());
}
try {
encoder = new AndroidSequenceEncoder((org.jcodec.common.io.SeekableByteChannel) out, Rational.R(25,1));
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(this, "in for loop", Toast.LENGTH_SHORT).show();
for(int i=0 ;i<arrayList.size() ; i++){
try {
encoder.encodeImage(arrayList.get(i));
} catch (IOException e) {
e.printStackTrace();
}
}
Toast.makeText(this, "out of loop", Toast.LENGTH_SHORT).show();
try {
encoder.finish();
} catch (IOException e) {
e.printStackTrace();
}
NIOUtils.closeQuietly(out);
}
}
}
希望、私は非常に迅速に対応得られます。しかし、私は
java.io.FileNotFoundException: output.mp4 (Read-only file system)
のようなエラーを取得しています。ここに私のコードの抜粋です。 ありがとうございます。
Thanks.Gettingエラー: 'java.lang.RuntimeException:活動ComponentInfo {COMを開始することができません。 graciaapps.newproject/com.graciaapps.newproject.Main2Activity}:java.lang.ClassCastException:org.jcodec.common.io.FileChannelWrapperをjava.nio.channels.SeekableByteChannelにキャストすることはできません android.app.ActivityThread.p erformLaunchActivity(ActivityThread.java:2646) 原因:java.lang.ClassCastException:org.jcodec.common.io.FileChannelWrapperをjava.nio.channels.SeekableByteChannelにキャストできません。 – Rozina
すぐに私を助けてくれることを願っています。@CommonsWare – Rozina
@Rozina:[mcve]を使ってスタックオーバーフローの質問をしてください。これには、新しいクラッシュ用の*完全な* Javaスタックトレースと現在のソースコードが含まれます。 NIOは、特にAndroid 7.0より前は限られているため、Androidで多く使用しない傾向があります。また、Android SDKには 'AndroidSequenceEncoder'もありません。 – CommonsWare