我遇到了错误"权限被拒绝"当我试图从应用程序缓存文件夹加载视频文件时。我从这里和其他互联网资源尝试了很多例子和建议,但到目前为止没有任何帮助。
我正在使用Apache Flex 4.13.0和Air 14.0。文件从Internet下载到应用程序缓存文件夹" data / data / application_name / cache。我使用应用程序debbugable = true和adb shell检查了目标所有文件都已到位。应用程序的第二部分是Air原生扩展,它使用TextureView和MediaPlayer播放视频。应用程序在Nexus 4和三星Galaxy S4(两款Android 4.4.2)上运行良好,但不想在Samsung Duos型号上玩:GT-S6810P,Android版本:4.1.2,Air:14.0.0.179。 logcat说:
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
设置dataSource:
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();
我尝试使用URI,FileDescriptor,File.getAbsolutePath和String路径,它在Nexus 4和Samsung Galaxy S4上运行良好。
有没有人遇到过这样的问题,很幸运能解决它?任何帮助表示赞赏