FFmpegMediaMetadataRetriever是否从外部存储?Android Studio/Kotlin
因此,我正在制作我的第一个Android应用程序,我试图让它允许用户在下一个活动中看到视频和视频的当前详细信息之前从他们的图库中挑选视频。 我的问题是,当我使用FFmpegMediaMetadataRetriever并将视频的文件路径传递给它时,我收到错误FFmpegMediaMetadataRetriever是否从外部存储?Android Studio/Kotlin,android,android-ffmpeg,mediametadataretriever,Android,Android Ffmpeg,Mediametadataretriever,因此,我正在制作我的第一个Android应用程序,我试图让它允许用户在下一个活动中看到视频和视频的当前详细信息之前从他们的图库中挑选视频。 我的问题是,当我使用FFmpegMediaMetadataRetriever并将视频的文件路径传递给它时,我收到错误java.lang.IllegalArgumentException:setDataSource失败:状态=0xFFFFFFFF。 我通过小道消息听说这意味着我的文件路径无效。当我Log.d文件路径时,我得到content://media/ex
java.lang.IllegalArgumentException:setDataSource失败:状态=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)
}
}
}
我也很高兴听到任何关于我的代码的建设性反馈!
请,谢谢你,祝你今天愉快 因此,我认为我的问题源于试图通过intent传递视频,然后运行MetadataRetriever。我解决了这个问题,在将每个值作为额外值传递给下一个屏幕之前,先获取上一个活动中的所有信息