Details
Description
The mediacast demo needs an upgrade to illustrate some of our
device integration features (augmented reality) and serve as
a JavaOne demo, possibly as part of a contest.
The main difference is actually with the "message" concept
in the application. Currently a message is just a photo,
video, or audio clip with a title and some thumbnails. In
the new version:
A media message will contain the following
- title (auto-generated if not provided)
- photo (optional)
- video (optional)
- audio (optional)
- location and direction (optional)
- text paragraph (optional)
- tags (optional)
If a photo is not provided, a frame from the video will be used
(as we generate video thumbnails now).
The user has a current set of tags (space separated in a text field).
They will see only messages with those tags and will create messages
with those tags. (Possible feature: some tags are reserved, such
as <1km to provide filtering features not directly tag based.)
Application must work with stock browser, container, and ICEmobile-SX.
ICEmobile-SX will cause a page reload when a device feature completes,
so the "current page" must be stored in the session.
When the user requests a "Reality" view, the tag-matching messages
will have thumbnails shown (this is implemented now for all messages,
so adding the tag feature will take care of the rest).
The purpose of the tag feature is to allow people to create their
own areas of interest within the application "restaurant", "park",
"javaone2012".
Use case:
- tag with "restaurant"
- take a photo of restaurant sign
- include a video clip of the happy kitchen staff and your food
- write a short review
- press submit
- another user types in the tag "restaurant"
- they see restaurants in the AR view
- they select one
- after reading reviews, follow the AR view to find the restaurant
(We will likely model a JavaOne contest around the above use case
somehow.)
So, it is really not too far from the current mediacast demo, but
will allow some very interesting use cases.
Ted.
device integration features (augmented reality) and serve as
a JavaOne demo, possibly as part of a contest.
The main difference is actually with the "message" concept
in the application. Currently a message is just a photo,
video, or audio clip with a title and some thumbnails. In
the new version:
A media message will contain the following
- title (auto-generated if not provided)
- photo (optional)
- video (optional)
- audio (optional)
- location and direction (optional)
- text paragraph (optional)
- tags (optional)
If a photo is not provided, a frame from the video will be used
(as we generate video thumbnails now).
The user has a current set of tags (space separated in a text field).
They will see only messages with those tags and will create messages
with those tags. (Possible feature: some tags are reserved, such
as <1km to provide filtering features not directly tag based.)
Application must work with stock browser, container, and ICEmobile-SX.
ICEmobile-SX will cause a page reload when a device feature completes,
so the "current page" must be stored in the session.
When the user requests a "Reality" view, the tag-matching messages
will have thumbnails shown (this is implemented now for all messages,
so adding the tag feature will take care of the rest).
The purpose of the tag feature is to allow people to create their
own areas of interest within the application "restaurant", "park",
"javaone2012".
Use case:
- tag with "restaurant"
- take a photo of restaurant sign
- include a video clip of the happy kitchen staff and your food
- write a short review
- press submit
- another user types in the tag "restaurant"
- they see restaurants in the AR view
- they select one
- after reading reviews, follow the AR view to find the restaurant
(We will likely model a JavaOne contest around the above use case
somehow.)
So, it is really not too far from the current mediacast demo, but
will allow some very interesting use cases.
Ted.
Feedback from Steve:
1) In gallery, photo is not scaled to fit, so can balloon out the size of the page if you have a large photo.
2) When you have multiple media types, the message list provides no indication. In the large view, at least, there seems to be enough room to show multiple icons for photo, video, and audio.
3) Gallery button and progress icon overlap.
4) The instructions take up too much of the page. Maybe put them in an accordion so you expand or collapse them. ICEmobile container warning should stay visible though.
5) Deleting messages does not push state changes to other clients.
6) Getting this error when session expires...
WARNING: queued exception
javax.faces.application.ViewExpiredException: viewId:/mediacast.jsf - View /mediacast.jsf could not be restored.
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:205)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)