Android 安卓4.1.2没有';无法播放存储在缓存文件夹中的视频-权限被拒绝
当我试图从应用程序缓存文件夹加载视频文件时,遇到错误“权限被拒绝”。我尝试了许多例子和建议,从这里和其他互联网来源,但没有帮助到目前为止 我正在使用ApacheFlex4.13.0和AIR14.0。文件从Internet下载到应用程序缓存文件夹中“数据/数据/应用程序\名称/缓存。我已经使用applicationdebbugable=true检查了目的地,并且ADBShell所有文件都已就绪。应用程序的第二部分是Air原生扩展,它使用TextureView和MediaPlayer播放视频。该应用程序在Nexus 4和三星Galaxy S4(均为安卓4.4.2)上运行良好,但不想在三星Duos上运行,型号:GT-S6810P,安卓版本:4.1.2,Air:14.0.0.179。日志说:Android 安卓4.1.2没有';无法播放存储在缓存文件夹中的视频-权限被拒绝,android,android-mediaplayer,permission-denied,Android,Android Mediaplayer,Permission Denied,当我试图从应用程序缓存文件夹加载视频文件时,遇到错误“权限被拒绝”。我尝试了许多例子和建议,从这里和其他互联网来源,但没有帮助到目前为止 我正在使用ApacheFlex4.13.0和AIR14.0。文件从Internet下载到应用程序缓存文件夹中“数据/数据/应用程序\名称/缓存。我已经使用applicationdebbugable=true检查了目的地,并且ADBShell所有文件都已就绪。应用程序的第二部分是Air原生扩展,它使用TextureView和MediaPlayer播放视频。该应用
09-10 11:52:38.536: D/InlineVideoContext(28275): MediaPlayer is about to set DataSource!
09-10 11:52:38.736: D/STATUSBAR-NetworkController(1715): refreshSignalCluster: data=0 bt=false
09-10 11:52:38.886: I/application_name(28275): LogViewingSession is finished!
09-10 11:52:38.896: V/MediaPlayerService(1238): Client(34) constructor
09-10 11:52:38.896: V/MediaPlayerService(1238): Create new client(34) from pid 28275, uid 10121,
09-10 11:52:38.896: D/MediaPlayer(28275): player=0x0x52530c10, getpid()=28275, this=0x0x532ab868, mAudioSessionId=80
09-10 11:52:38.906: V/MediaPlayerService(1238): player type = 3
09-10 11:52:38.906: V/MediaPlayerService(1238): create StagefrightPlayer
09-10 11:52:38.926: V/AwesomePlayer(1238): setDefault
09-10 11:52:38.926: V/AwesomePlayer(1238): constructor
09-10 11:52:38.936: I/AwesomePlayer(1238): AwesomePlayer: AWESOME SEEK LATENESS 500000 ms
09-10 11:52:38.936: I/AwesomePlayer(1238): AwesomePlayer: AWESOME SEEK OPTION <SEEK_VIDEO_ONLY>
09-10 11:52:38.936: I/AwesomePlayer(1238): AwesomePlayer: AWESOME LATENESS 40000 ms
09-10 11:52:38.936: V/AwesomePlayer(1238): setDefault
09-10 11:52:38.936: I/AwesomePlayer(1238): reset
09-10 11:52:38.936: I/AwesomePlayer(1238): cancel player events
09-10 11:52:38.946: V/StagefrightPlayer(1238): StagefrightPlayer
09-10 11:52:38.946: V/AwesomePlayer(1238): setListener
09-10 11:52:38.946: V/StagefrightPlayer(1238): initCheck
09-10 11:52:38.946: V/AwesomePlayer(1238): AwesomePlayer running on behalf of uid 10121
09-10 11:52:38.946: V/AudioSink(1238): AudioOutput(80)
09-10 11:52:38.946: I/AwesomePlayer(1238): cancel player events
09-10 11:52:38.946: I/AwesomePlayer(1238): setDataSource_l(URL suppressed)
09-10 11:52:38.946: V/MediaPlayerService(1238): setDataSource
09-10 11:52:38.946: V/MediaPlayerService(1238): [34] getParameter(1700)
09-10 11:52:38.946: V/MediaPlayer(28275): setVideoSurfaceTexture
09-10 11:52:38.946: V/MediaPlayerService(1238): [34] setVideoSurfaceTexture(0x4208d9c8)
09-10 11:52:38.946: V/StagefrightPlayer(1238): setVideoSurfaceTexture
09-10 11:52:38.946: V/MediaPlayer(28275): prepare
09-10 11:52:38.946: V/MediaPlayerService(1238): [34] setAudioStreamType(3)
09-10 11:52:38.946: V/MediaPlayerService(1238): [34] prepareAsync
09-10 11:52:38.956: V/AwesomePlayer(1238): prepareAsync
09-10 11:52:38.966: V/AwesomePlayer(1238): onPrepareAsyncEvent
09-10 11:52:38.966: E/(1238): Failed to open file '/data/data/application_name/cache/5292b615-5a22-4330-87a2-a35500cde0ce/sections/0a52aff3-aef8-4af0-becc-a39300fce589/6b83d738-f6eb-4fd9-8d58-a39300fce5aa/0fb55f28-16a5-4f55-9d6a-a39300fce59e.mp4'. (Permission denied)
09-10 11:52:38.966: E/AwesomePlayer(1238): cannot create dataSource
09-10 11:52:38.966: W/AwesomePlayer(1238): onPrepareAsyncEvent() finishSetDataSource_l error(-2147483648)
09-10 11:52:38.966: W/AwesomePlayer(1238): abortPrepare() mIsAsyncPrepare (1), err (-2147483648)
09-10 11:52:38.966: V/AwesomePlayer(1238): notifyListner_l() msg (100-MEDIA_ERROR), ext1 (1), ext2 (-2147483648)
09-10 11:52:38.966: V/MediaPlayerService(1238): [34] notify (0x42214080)
09-10 11:52:38.966: V/MediaPlayerService(1238): [34] notify (0x42214080, 100, 1, -2147483648)
09-10 11:52:38.966: V/MediaPlayer(28275): message received msg=100, ext1=1, ext2=-2147483648
09-10 11:52:38.976: E/MediaPlayer(28275): error (1, -2147483648)
09-10 11:52:38.976: V/MediaPlayer(28275): signal application thread
09-10 11:52:38.976: V/MediaPlayer(28275): prepare complete - status=1
09-10 11:52:38.976: E/InlineVideoContext(28275): Prepare failed.: status=0x1
我尝试使用URI、FileDescriptor、File.getAbsolutePath和just String path,这在Nexus 4和三星Galaxy S4上运行良好
有没有人遇到过这样的问题并幸运地解决了它?感谢您的帮助看起来我应该使用FileInputStream和FileDescriptor,但logcat说:09-10 16:12:18.701:E/InlineVideoContext(2444):/file:/data/data/application_name/cache/5292b615-5a22-4330-87a2-a35500cde0ce/sections/0A52AF3-aef8-4af0-becc-a39300fce589/6b83d738-f6eb-4fd9-8d58-a39300fce5aa/0fb55f28-16a5-4f55-9A-a39300fce59e.mp4:打开失败:eNote(没有这样的文件或目录)最后我发现了问题。我向电子邮件发送了错误的文件路径。路径必须是绝对路径“数据/数据/应用程序名称/缓存”,而不是”file://data/data/app_name/cache". 然而,Android 4.4.2仍然可以使用以“file://”开头的路径。
if(_mediaPlayer.isPlaying())
dispatchStatusEventAsync("PLAYBACK_DID_FINISH", Integer.toString(_currentPosition));
_currentPosition = 0;
_mediaPlayer.stop();
_mediaPlayer.reset();
Log.d(TAG, "MediaPlayer is about to set DataSource!");
_mediaPlayer.setDataSource(_path);
_mediaPlayer.prepare();