Итак, я делаю свое первое приложение для Android и пытаюсь получить его, чтобы пользователь мог выбрать видео из своей галереи перед просмотром видео и текущими подробностями видео в следующем упражнении.
Моя проблема в том, что когда я использую FFmpegMediaMetadataRetriever и передаю ему путь к файлу видео, я получаю сообщение об ошибке java.lang.IllegalArgumentException: setDataSource failed: status = 0xFFFFFFFF
.
Я слышал через виноградную лозу, что это означает, что мой путь к файлу неверен. Когда я Log.d
путь к файлу, я получаю content://media/external/file/3565
, который для меня выглядит как правильный путь к файлу!
Я надеюсь, что кто-нибудь может помочь мне понять это.
Вот мой класс активности для контекста:
class NewProject : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_new_project)
val videoPath = intent.getStringExtra("video")
initVideo(videoPath)
backButtonText.setOnClickListener{ goBack() }
}
private fun goBack() {
val intent = Intent(this,MainActivity::class.java)
startActivity(intent)
}
private fun initVideo(videoPath:String) {
newProjVideoView.setVideoPath(videoPath)
newProjVideoView.start()
newProjVideoView.setOnCompletionListener {
newProjVideoView.pause()
}
getVideoMetadata(videoPath)
}
private fun getVideoMetadata(videoPath: String) {
try {
e("videoPath", videoPath)
val receiver = FFmpegMediaMetadataRetriever()
receiver.setDataSource(videoPath)
} catch (e:IOException) {
e("retrieve1","There was an issue", e)
}
}
}
Я также рад услышать любые конструктивные отзывы о моем коде!
Пожалуйста, спасибо и хорошего дня!