use of org.videolan.libvlc.interfaces.IMedia in project vlc-android by videolan.
the class MediaList method insertMediaFromEvent.
private synchronized IMedia insertMediaFromEvent(int index) {
for (int i = mCount - 1; i >= index; --i) mMediaArray.put(i + 1, mMediaArray.valueAt(i));
mCount++;
final IMedia media = new Media(this, index);
mMediaArray.put(index, media);
return media;
}
use of org.videolan.libvlc.interfaces.IMedia in project vlc-android by videolan.
the class MediaList method onEventNative.
@Override
protected synchronized Event onEventNative(int eventType, long arg1, long arg2, float argf1, @Nullable String args1) {
if (mLocked)
throw new IllegalStateException("already locked from event callback");
mLocked = true;
Event event = null;
int index;
switch(eventType) {
case Event.ItemAdded:
index = (int) arg1;
if (index != -1) {
final IMedia media = insertMediaFromEvent(index);
event = new Event(eventType, media, true, index);
}
break;
case Event.ItemDeleted:
index = (int) arg1;
if (index != -1) {
final IMedia media = removeMediaFromEvent(index);
event = new Event(eventType, media, false, index);
}
break;
case Event.EndReached:
event = new Event(eventType, null, false, -1);
break;
}
mLocked = false;
return event;
}
use of org.videolan.libvlc.interfaces.IMedia in project vlc-android by videolan.
the class MediaList method removeMediaFromEvent.
private synchronized IMedia removeMediaFromEvent(int index) {
mCount--;
final IMedia media = mMediaArray.get(index);
if (media != null)
media.release();
for (int i = index; i < mCount; ++i) {
mMediaArray.put(i, mMediaArray.valueAt(i + 1));
}
return media;
}
use of org.videolan.libvlc.interfaces.IMedia in project vlc-android by videolan.
the class MediaWrapper method updateMeta.
public void updateMeta(MediaPlayer mediaPlayer) {
if ((!TextUtils.isEmpty(mTitle) && TextUtils.isEmpty(mDisplayTitle)) || (mDisplayTitle != null && !mDisplayTitle.equals(mTitle)))
mDisplayTitle = mTitle;
final IMedia media = mediaPlayer.getMedia();
if (media == null)
return;
updateMeta(media);
media.release();
}
use of org.videolan.libvlc.interfaces.IMedia in project vlc-android by videolan.
the class MediaBrowser method browse.
/**
* Browse to the specified local path starting with '/'.
*
* @param path
* @param flags see {@link MediaBrowser.Flag}
*/
@MainThread
public void browse(String path, int flags) {
final IMedia media = mFactory.getFromLocalPath(mILibVlc, path);
browse(media, flags);
media.release();
}
Aggregations