2015-04-14 6 views
6

Ich möchte fragen, ob es eine Anwendung gibt, in der Benutzer USB über OTG-Kabelgerät mit Android verbinden und die Medien (insbesondere Videos) wiedergeben können, die darin enthalten sind.Video mit angeschlossenem USB über OTG-Kabel in Android wiedergeben?

ich habe einen Broadcast-Empfänger gemacht, um den angeschlossenen USB zu erkennen, ich möchte den Inhalt auch lesen. Ich verwende dieses Code-Snippet.

    private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() { 

          public void onReceive(Context context, Intent intent) { 
           String action = intent.getAction(); 
           if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action)) { 
            synchronized (this) { 
             UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); 

             if(device != null){ 
               //       
              Log.d("1","DEATTCHED-" + device); 
              } 
            } 
           } 
        // 
           if (UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action)) { 
            synchronized (this) { 
             UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); 
             if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) { 

              if(device != null){ 
               // 

               Log.d("1","ATTACHED-" + device); 
              } 
             } 
             else { 
              PendingIntent mPermissionIntent; 
              mPermissionIntent = PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_ONE_SHOT);      
              mUsbManager.requestPermission(device, mPermissionIntent); 

             }     

            } 
           } 
        // 
           if (ACTION_USB_PERMISSION.equals(action)) { 
            synchronized (this) { 
             UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); 
             if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) { 

              if(device != null){ 
               // 

               Log.d("1","PERMISSION-" + device); 
              } 
             }     
            } 
           }   
          } 
         }; 

Ich möchte solche Art von Anwendung machen.

Hat jemand eine Idee dazu?

+0

ich ein Projekt hier gefunden haben: https://github.com/danny-source/List-USB-OTG – hitesh141

+0

@ Paresh: dann Warum markieren Sie es als Off-Thema? – hitesh141

+2

Der Grund, warum ich dafür gestimmt habe, diese Frage zu schließen, liegt darin, dass Sie weder den Code noch die ausreichenden Details angegeben haben und auch nicht, was Sie versucht haben. Sie können Ihre [Frage-Version] (http://stackoverflow.com/posts/29625384/revisions) überprüfen, Sie haben diese Frage am 14. gestellt, aber später haben Sie den Code eingefügt. Ich kann meine enge Abstimmung nicht umgekehrt zurücknehmen, das ist die Einschränkung oder eine Regel, dass Sie, sobald Sie eine enge Abstimmung durchgeführt haben, es nicht zurücknehmen können, aber ja später können Sie eine Stimme dafür abgeben, den Thread wieder zu öffnen! –

Antwort

0

Die Aufteilung des Videos in mehrere Untervideos kann für Sie funktionieren.

Ich schlage vor: Anstatt das gesamte Video in einem einzigen Pfad zu speichern, teilen Sie dieses Video in mehrere Untervideos auf und ersetzen dann die AVPlayerItem-Eigenschaft von AVPlayer entsprechend.

So funktioniert jetzt Funktionalität wie Video-Streaming. :)

Sie können auch den CMSampleBuffer konvertieren, den der AVAssetReader in ein CGImage und dann ein UIImage zurückgibt und das in einem UIImageView anzeigen, um die Frames so darzustellen, wie sie aus der ursprünglichen Videodatei gezogen werden.

Es gibt Beispielcode im AVFoundation-Programmierhandbuch, der zeigt, wie diese Konvertierung durchgeführt wird.

+0

Ich möchte die grundlegende Kernfrage stellen, wie kann ich die Daten lesen, die in angeschlossenen USB-Gerät befindet. Ich kann diese Daten nicht abrufen. Sobald ich diese Daten habe, die in Videoform sind. Dann werde ich Ihre Meinung verwenden. – hitesh141