Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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视频视图_Android_Android Sdcard_Android Videoview - Fatal编程技术网

Android视频视图

Android视频视图,android,android-sdcard,android-videoview,Android,Android Sdcard,Android Videoview,我尝试使用Android Videoview在SD卡中播放视频。如果SD卡有多个视频,它将在我的SD卡中播放下一个视频。但无论是在我的模拟器还是我的智能手机上,应用程序都不起作用 我已经添加了权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 还有一个视频到我的SD卡 下面是我的代码 package com.example.videotest; import androi

我尝试使用Android Videoview在SD卡中播放视频。如果SD卡有多个视频,它将在我的SD卡中播放下一个视频。但无论是在我的模拟器还是我的智能手机上,应用程序都不起作用

我已经添加了权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

还有一个视频到我的SD卡

下面是我的代码

package com.example.videotest;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle ;
import android.provider.MediaStore.Video;
import android.app.Activity;
import android.database.Cursor;
import android.view.Menu;
import android.widget.Toast;
import android.widget.VideoView;

 public class MainActivity extends Activity implements OnCompletionListener{
 Cursor mediaCursor=null;
 VideoView videoView=null;
 int dataIdx=0;
@Override
public void onCompletion(MediaPlayer arg0) {
    // TODO Auto-generated method stub
    playNextVideo();            
}       
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    VideoView videoView=(VideoView) findViewById(R.id.videoView1);
    videoView.setOnCompletionListener((OnCompletionListener) this);
    String projection[]=new String[] {Video.Media.DATA};
    mediaCursor=getContentResolver().query(Video.Media.EXTERNAL_CONTENT_URI, projection, null, null, null);
    if(mediaCursor!=null&&mediaCursor.getCount()>0){
           dataIdx=mediaCursor.getColumnIndex(Video.Media.DATA);
           playNextVideo();
    }
}
private void playNextVideo(){
        mediaCursor.moveToNext();
        if(mediaCursor.isAfterLast()){ 
            Toast.makeText(getApplicationContext(),"End of Line",Toast.LENGTH_SHORT).show();
        }
        else{
                String path=mediaCursor.getString(dataIdx);
                Toast.makeText(getApplicationContext(),"playing: "+path, Toast.LENGTH_SHORT).show();
                videoView.setVideoPath(path);
                videoView.start();
        }
}



@Override
public void onDestroy(){
     if (mediaCursor!=null){
         mediaCursor.close();
     }
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
}



 01-29 10:43:39.186: W/WindowManager(161): Failure taking screenshot for (246x410) to layer 21015
 01-29 10:43:39.256: I/Choreographer(429): Skipped 32 frames!  The application may be doing too much work on its main thread.
 01-29 10:43:39.535: I/Choreographer(429): Skipped 59 frames!  The application may be doing too much work on its main thread.
 01-29 10:44:03.995: D/AndroidRuntime(1345): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
 01-29 10:44:03.995: D/AndroidRuntime(1345): CheckJNI is ON
 01-29 10:44:04.035: D/dalvikvm(1345): Trying to load lib libjavacore.so 0x0
 01-29 10:44:04.045: D/dalvikvm(1345): Added shared lib libjavacore.so 0x0
 01-29 10:44:04.075: D/dalvikvm(1345): Trying to load lib libnativehelper.so 0x0
 01-29 10:44:04.075: D/dalvikvm(1345): Added shared lib libnativehelper.so 0x0
 01-29 10:44:04.895: D/AndroidRuntime(1345): Calling main entry com.android.commands.pm.Pm
 01-29 10:44:04.965: W/ActivityManager(161): No content provider found for permission revoke: file:///data/local/tmp/VideoTEST.apk
 01-29 10:44:04.985: W/ActivityManager(161): No content provider found for permission revoke: file:///data/local/tmp/VideoTEST.apk
 01-29 10:44:05.266: D/dalvikvm(161): GC_CONCURRENT freed 550K, 45% free 10453K/18887K, paused 19ms+27ms, total 148ms
 01-29 10:44:05.326: I/PackageManager(161): Removing non-system package:com.example.videotest
 01-29 10:44:05.326: I/ActivityManager(161): Force stopping package com.example.videotest uid=10044
 01-29 10:44:05.326: I/ActivityManager(161): Killing proc 1282:com.example.videotest/u0a44: force stop
 01-29 10:44:05.326: W/ActivityManager(161): Force removing ActivityRecord{416c3d88 com.example.videotest/.MainActivity}: app died, no saved state
 01-29 10:44:05.376: W/InputDispatcher(161): channel '416195c8 com.example.videotest/com.example.videotest.MainActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
 01-29 10:44:05.376: E/InputDispatcher(161): channel '416195c8 com.example.videotest/com.example.videotest.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
 01-29 10:44:05.386: I/WindowState(161): WIN DEATH: Window{416195c8 com.example.videotest/com.example.videotest.MainActivity paused=false}
 01-29 10:44:05.386: W/InputDispatcher(161): Attempted to unregister already unregistered input channel '416195c8 com.example.videotest/com.example.videotest.MainActivity (server)'
 01-29 10:44:05.386: W/WindowManager(161): Force-removing child win Window{4167b698 SurfaceView paused=false} from container Window{416195c8 com.example.videotest/com.example.videotest.MainActivity paused=false}
 01-29 10:44:05.426: W/WindowManager(161): Failed looking up window
 01-29 10:44:05.426: W/WindowManager(161): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@4161c220 does not exist
 01-29 10:44:05.426: W/WindowManager(161):  at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7640)
   01-29 10:44:05.426: W/WindowManager(161):    at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7631)
   01-29 10:44:05.426: W/WindowManager(161):    at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:854)
  01-29 10:44:05.426: W/WindowManager(161):     at android.os.BinderProxy.sendDeathNotice(Binder.java:449)
  01-29 10:44:05.426: W/WindowManager(161):     at dalvik.system.NativeStart.run(Native Method)
  01-29 10:44:05.426: I/WindowState(161): WIN DEATH: null
  01-29 10:44:05.426: I/WindowManager(161): WINDOW DIED Window{416195c8 co m.example.videotest/com.example.videotest.MainActivity paused=false}
  01-29 10:44:05.666: W/InputMethodManagerService(161): Got RemoteException sending setActive(false) notification to pid 1282 uid 10044
   01-29 10:44:06.095: I/PackageManager(161): Package com.example.videotest codePath changed from /data/app/com.example.videotest-1.apk to /data/app/com.example.videotest-2.apk; Retaining data and using new
     01-29 10:44:06.095: I/PackageManager(161): Running dexopt on: com.example.videotest
     01-29 10:44:06.965: D/dalvikvm(1356): DexOpt: load 131ms, verify+opt 486ms, 745428 bytes
    01-29 10:44:06.986: I/ActivityManager(161): Force stopping package com.example.videotest uid=10044
  01-29 10:44:06.995: W/PackageManager(161): Code path for pkg : com.example.videotest changing from /data/app/com.example.videotest-1.apk to /data/app/com.example.videotest-2.apk
  01-29 10:44:06.995: W/PackageManager(161): Resource path for pkg : com.example.videotest changing from /data/app/com.example.videotest-1.apk to /data/app/com.example.videotest-2.apk
  01-29 10:44:07.115: D/PackageManager(161): New package installed in /data/app/com.example.videotest-2.apk
  01-29 10:44:07.236: I/ActivityManager(161): Force stopping package com.example.videotest uid=10044
  01-29 10:44:07.246: D/dalvikvm(429): WAIT_FOR_CONCURRENT_GC blocked 0ms
  01-29 10:44:07.286: D/dalvikvm(616): WAIT_FOR_CONCURRENT_GC blocked 0ms
  01-29 10:44:07.436: D/dalvikvm(429): GC_EXPLICIT freed 10435K, 60% free 8931K/21831K, paused 11ms+23ms, total 186ms
  01-29 10:44:07.446: D/dalvikvm(540): WAIT_FOR_CONCURRENT_GC blocked 0ms
  01-29 10:44:07.466: D/dalvikvm(616): GC_EXPLICIT freed 4569K, 37% free 10401K/16455K, paused 7ms+33ms, total 179ms
  01-29 10:44:07.666: I/InputReader(161): Reconfiguring input devices.  changes=0x00000010
  01-29 10:44:07.676: D/PackageManager(161): generateServicesMap(android.accounts.AccountAuthenticator): 2 services unchanged
   01-29 10:44:07.686: D/dalvikvm(540): GC_EXPLICIT freed 86K, 7% free 8394K/8967K, paused 12ms+8ms, total 218ms
   01-29 10:44:07.745: I/AccountTypeManager(710): Loaded meta-data for 1 account types, 0 accounts in 63ms(wall) 6ms(cpu)
   01-29 10:44:07.745: D/PackageManager(161): generateServicesMap(android.content.SyncAdapter): 4 services unchanged
   01-29 10:44:07.755: D/BackupManagerService(161): Received broadcast Intent { act=android.intent.action.PACKAGE_REMOVED dat=package:com.example.videotest flg=0x8000010 (has extras) }
   01-29 10:44:07.865: D/dalvikvm(161): GC_CONCURRENT freed 564K, 45% free 10429K/18887K, paused 53ms+13ms, total 188ms
   01-29 10:44:07.865: D/dalvikvm(161): WAIT_FOR_CONCURRENT_GC blocked 109ms
   01-29 10:44:08.035: D/dalvikvm(161): GC_EXPLICIT freed 61K, 46% free 10369K/18887K, paused 13ms+29ms, total 166ms
   01-29 10:44:08.135: I/ActivityManager(161): Start proc com.android.keychain for broadcast com.android.keychain/.KeyChainBroadcastReceiver: pid=1357 uid=1000 gids={1015, 3002, 3001, 3003, 1028}
     01-29 10:44:08.226: D/PackageManager(161): generateServicesMap(android.accounts.AccountAuthenticator): 2 services unchanged
     01-29 10:44:08.256: D/PackageManager(161): generateServicesMap(android.content.SyncAdapter): 4 services unchanged
     01-29 10:44:08.285: I/InputReader(161): Reconfiguring input devices.  changes=0x00000010
   01-29 10:44:08.296: D/BackupManagerService(161): Received broadcast Intent { act=android.intent.action.PACKAGE_ADDED dat=package:com.example.videotest flg=0x8000010 (has extras) }
     01-29 10:44:08.296: V/BackupManagerService(161): removePackageParticipantsLocked: uid=10044 #1
      01-29 10:44:08.515: V/BackupManagerService(161): addPackageParticipantsLocked: #1
     01-29 10:44:08.556: W/InputMethodManagerService(161): Found no subtypes in a system IME: com.android.inputmethod.pinyin
      01-29 10:44:08.586: E/Trace(1357): error opening trace file: No such file or directory (2)
   01-29 10:44:08.686: I/AccountTypeManager(710): Loaded meta-data for 1 account types, 0 accounts in 9ms(wall) 5ms(cpu)
    01-29 10:44:08.796: D/dalvikvm(161): WAIT_FOR_CONCURRENT_GC blocked 0ms
      01-29 10:44:08.975: W/RecognitionManagerService(161): no available voice recognition services found
    01-29 10:44:09.146: D/dalvikvm(161): GC_EXPLICIT freed 367K, 45% free 10413K/18887K, paused 57ms+22ms, total 355ms
  01-29 10:44:09.186: D/AndroidRuntime(1345): Shutting down VM
  01-29 10:44:09.196: D/dalvikvm(1345): GC_CONCURRENT freed 101K, 78% free 458K/2048K, paused 1ms+2ms, total 12ms
       01-29 10:44:09.206: D/jdwp(1345): Got wake-up signal, bailing out of select
      01-29 10:44:09.206: D/dalvikvm(1345): Debugger has detached; object registry had 1 entries
     01-29 10:44:09.206: I/AndroidRuntime(1345): NOTE: attach of thread 'Binder_3' failed
      01-29 10:44:10.085: D/AndroidRuntime(1377): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
      01-29 10:44:10.085: D/AndroidRuntime(1377): CheckJNI is ON
     01-29 10:44:10.176: D/dalvikvm(1377): Trying to load lib libjavacore.so 0x0
     01-29 10:44:10.186: D/dalvikvm(1377): Added shared lib libjavacore.so 0x0
     01-29 10:44:10.246: D/dalvikvm(1377): Trying to load lib libnativehelper.so 0x0
     01-29 10:44:10.246: D/dalvikvm(1377): Added shared lib libnativehelper.so 0x0
    01-29 10:44:11.126: D/AndroidRuntime(1377): Calling main entry com.an droid.commands.am.Am
     01-29 10:44:11.156: I/ActivityManager(161): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.example.videotest/.MainActivity u=0} from pid 1377
     01-29 10:44:11.186: W/WindowManager(161): Failure taking screenshot for (246x410) to    layer 21005
     01-29 10:44:11.226: D/AndroidRuntime(1377): Shutting down VM
     01-29 10:44:11.246: I/AndroidRuntime(1377): NOTE: attach of thread 'Binder_3' failed
     01-29 10:44:11.246: D/dalvikvm(1377): GC_CONCURRENT freed 102K, 77% free 489K/2048K, paused 11ms+1ms, total 23ms
    01-29 10:44:11.256: D/jdwp(1377): Got wake-up signal, bailing out of select
     01-29 10:44:11.256: D/dalvikvm(1377): Debugger has detached; object registry had 1 entries
      01-29 10:44:11.266: D/dalvikvm(1388): Not late-enabling CheckJNI (already on)
     01-29 10:44:11.286: I/ActivityManager(161): Start proc com.example.videotest for activity com.example.videotest/.MainActivity: pid=1388 uid=10044 gids={1015, 1028}
     01-29 10:44:11.705: E/Trace(1388): error opening trace file: No such file or directory (2)
     01-29 10:44:12.256: D/dalvikvm(161): WAIT_FOR_CONCURRENT_GC blocked 0ms
     01-29 10:44:12.406: D/dalvikvm(161): GC_EXPLICIT freed 110K, 45% free 10473K/18887K, paused 10ms+12ms, total 157ms
     01-29 10:44:12.606: I/Choreographer(1388): Skipped 38 frames!  The application may be doing too much work on its main thread.
     01-29 10:44:12.685: D/gralloc_goldfish(1388): Emulator without GPU emulation detected.
     01-29 10:44:12.755: I/ActivityManager(161): Displayed com.example.videotest/.MainActivity: +1s541ms
     01-29 10:44:13.146: I/Choreographer(1388): Skipped 92 frames!  The application may be doing too much work on its main thread.
     01-29 10:48:55.096: E/ThrottleService(161): problem during onPollAlarm: java.lang.IllegalStateException: problem parsing stats: java.io.FileNotFoundException: /proc/net/xt_qtaguid/iface_stat_all: open failed: ENOENT (No such file or directory)
      01-29 10:50:28.105: D/dalvikvm(457): GC_CONCURRENT freed 403K, 7% free 8578K/9159K, paused 17ms+4ms, total 57ms
package com.example.videotest;
导入android.media.MediaPlayer;
导入android.media.MediaPlayer.OnCompletionListener;
导入android.os.Bundle;
导入android.provider.MediaStore.Video;
导入android.app.Activity;
导入android.database.Cursor;
导入android.view.Menu;
导入android.widget.Toast;
导入android.widget.VideoView;
公共类MainActivity扩展活动实现OnCompletionListener{
游标mediaCursor=null;
VideoView VideoView=null;
int dataIdx=0;
@凌驾
完成时的公共作废(MediaPlayer arg0){
//TODO自动生成的方法存根
playNextVideo();
}       
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
VideoView VideoView=(VideoView)findViewById(R.id.videoView1);
setOnCompletionListener((OnCompletionListener)this);
字符串投影[]=新字符串[]{Video.Media.DATA};
mediaCursor=getContentResolver().query(Video.Media.EXTERNAL_CONTENT_URI,投影,null,null,null);
if(mediaCursor!=null&&mediaCursor.getCount()>0){
dataIdx=mediaCursor.getColumnIndex(Video.Media.DATA);
playNextVideo();
}
}
私有void playNextVideo(){
mediaCursor.moveToNext();
如果(mediaCursor.isAfterLast()){
Toast.makeText(getApplicationContext(),“行尾”,Toast.LENGTH\u SHORT.show();
}
否则{
字符串路径=mediaCursor.getString(dataIdx);
Toast.makeText(getApplicationContext(),“playing:+path,Toast.LENGTH_SHORT).show();
设置视频路径(路径);
videoView.start();
}
}
@凌驾
公共空间{
if(mediaCursor!=null){
mediaCursor.close();
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.activity\u主菜单);
返回true;
}
}
01-29 10:43:39.186:W/WindowManager(161):为层21015(246x410)拍摄故障截图
01-29 10:43:39.256:I/编舞(429):跳过了32帧!应用程序可能在其主线程上做了太多工作。
01-29 10:43:39.535:I/编舞(429):跳过59帧!应用程序可能在其主线程上做了太多工作。
01-29 10:44:03.995:D/AndroidRuntime(1345):>>>>>>>AndroidRuntime开始com.android.internal.os.RuntimeInit>AndroidRuntime开始com.android.internal.os.RuntimeInit在
onCreate()
方法中

这条线

    VideoView videoView=(VideoView) findViewById(R.id.videoView1);
应该是

    videoView=(VideoView) findViewById(R.id.videoView1);

您是否获得了
NullPointerException
?我试过你的密码,跟着格伦的答案。这是正确的。不要创建更多的VideoView实例,因为它没有任何用处。