Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓4.1.2没有';无法播放存储在缓存文件夹中的视频-权限被拒绝_Android_Android Mediaplayer_Permission Denied - Fatal编程技术网

Android 安卓4.1.2没有';无法播放存储在缓存文件夹中的视频-权限被拒绝

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播放视频。该应用

当我试图从应用程序缓存文件夹加载视频文件时,遇到错误“权限被拒绝”。我尝试了许多例子和建议,从这里和其他互联网来源,但没有帮助到目前为止

我正在使用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。日志说:

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();