2016-10-12 3 views
3

В моем приложении я использую пользовательскую камеру для записи видео. Я могу сделать запись и получить путь к видео с SD-карты, как показано ниже: /storage/emulated/0/DCIM/Camera/20141219_133139.mp4.Как изменить видео путь в видео Uri

Теперь я хочу, чтобы загрузить это видео на YouTube, но и uplaod видео Мне нужно путь в URI, как показано ниже: content//media/external/video/media/18576

Пожалуйста, дайте мне знать, как я могу преобразовать путь к URI. Спасибо заранее.

+0

попытка прочитать свой вопрос еще раз и посмотреть, если вы можете понять, что вы имеете в виду, изменить свой вопрос и дать понять, что вы хотите –

+0

@AnkitMiglani вы хотите изменить его программно? или вручную? – PN10

+0

или просто хотите изменить путь к записанному видео? или изменить и сохранить его на внешние носители для всех записанных видео? Пожалуйста, проясните, что вы хотите ... сделайте изменения на свой вопрос соответственно ... – PN10

ответ

0
content://media/external/video/media/18576 

означает, что видео имеет id = 18576 в медиа-базе данных. Вы должны запросить медиа-базу данных для идентификатора. Псевдокод:

select id from 'content//media/external/video/media' 
    where data = '/storage/emulated/0/DCIM/Camera/20141219_133139.mp4' 

вы должны запросить в средствах массовой информации базами данных

// getIdForFile("/storage/emulated/0/DCIM/Camera/20141219_133139.mp4") 
public long getIdForFile(String filePath) { 
    Cursor c = null; 
    try { 
     c = this.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, 
       new String[]{MediaStore.Video.Media._ID}, 
       MediaStore.Video.Media.DATA + " = ?", 
       new String[]{filePath}, 
       null    // Default sort order 
     ); 
     if (c.moveToNext()) { 
      return c.getInt(0); // MediaStore.Video.Media._ID 
     } 
    } catch (Exception ex) { 
     Log.e(Global.LOG_CONTEXT, ".... some error message ....", ex); 
    } finally { 
     if (c != null) c.close(); 
    } 
    return null; 
} 
0

Его Рабочая!

long vidid = getIdForFile(mediaFile.getAbsolutePath()); 
Log.d("VIDID" , " "+vidid); 
String urivid = "content://media/external/video/media/"+vidid; 
Uri vid = Uri.parse(urivid); // it's right uri for videofile 

моя функция getIdForFile

public long getIdForFile(String filePath) { 
    Cursor c = null; 
    try { 
     c = this.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, 
       new String[]{MediaStore.Video.Media._ID}, 
       MediaStore.Video.Media.DATA + " = ?", 
       new String[]{filePath}, 
       null    // Default sort order 
     ); 
     if (c.moveToNext()) { 
      return c.getInt(0); // MediaStore.Video.Media._ID 
     } 
    } catch (Exception ex) { 
     Log.e("VIDURI", ".... some error message ....", ex); 
    } finally { 
     if (c != null) c.close(); 
    } 
    return 0; 
} 
Смежные вопросы