US20160188196A1 - Floating media player - Google Patents
Floating media player Download PDFInfo
- Publication number
- US20160188196A1 US20160188196A1 US14/691,598 US201514691598A US2016188196A1 US 20160188196 A1 US20160188196 A1 US 20160188196A1 US 201514691598 A US201514691598 A US 201514691598A US 2016188196 A1 US2016188196 A1 US 2016188196A1
- Authority
- US
- United States
- Prior art keywords
- user interface
- client device
- user
- gesture
- playback
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000007667 floating Methods 0.000 title abstract description 8
- 230000004044 response Effects 0.000 claims abstract description 24
- 238000000034 method Methods 0.000 claims description 21
- 230000009466 transformation Effects 0.000 claims description 6
- 230000003993 interaction Effects 0.000 claims description 5
- 238000009877 rendering Methods 0.000 claims description 5
- 238000013500 data storage Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241001362551 Samba Species 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4405—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video stream decryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04806—Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04808—Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
Definitions
- Mobile devices are increasingly being used to play back a variety of media, including video streams, audio streams, slide shows, and other forms of media.
- mobile devices may lack digital video disc (DVD) drives and have less data storage than desktop workstations, WI-FI and 4G wireless technologies may make it possible to stream videos and other high bitrate media to the devices.
- DVD digital video disc
- WI-FI and 4G wireless technologies may make it possible to stream videos and other high bitrate media to the devices.
- a typical media playback experience upon a mobile device involves a full-screen presentation. If the user wishes to work in another application, the user may have to send the media player to the background and switch to the other application.
- FIG. 1 is a schematic block diagram of a client device according to various embodiments of the present disclosure.
- FIG. 2 is a schematic block diagram of a networked environment according to various embodiments of the present disclosure.
- FIG. 3 is a flowchart illustrating one example of functionality implemented as portions of a playback module executed in the client device of FIG. 1 or 2 according to various embodiments of the present disclosure.
- FIG. 4 is a flowchart illustrating one example of functionality implemented as portions of a streaming module executed in the client device of FIG. 1 or the computing environment of FIG. 2 according to various embodiments of the present disclosure.
- FIG. 5 is a pictorial diagram of an example media player user interface rendered in full-screen mode by the client device of FIG. 1 or 2 according to various embodiments of the present disclosure.
- FIGS. 6-8 are pictorial diagrams of example media player user interfaces rendered in floating mode by the client device of FIG. 1 or 2 according to various embodiments of the present disclosure.
- FIG. 9 is a flowchart illustrating one example of functionality implemented as portions of a playback module executed in the client device of FIG. 1 or 2 according to various embodiments of the present disclosure.
- the present disclosure relates to media players and a security framework therefor. Secure management of digital media can be challenging. Content rights must be protected against dangers of unauthorized copying. Unauthorized copying may be problematic from the standpoint of media piracy.
- media items may be confidential and proprietary to a business organization, and any disclosure may harm the interests of the business organization.
- media items may be personal for a user, and any disclosure would violate the privacy of the user.
- One approach to maintaining security of media items would be to encrypt the media files and to decrypt them when they are played back. However, this approach creates a full copy of the decrypted media item, which may allow the copy as a whole to be intercepted on the device or during transit to the device.
- Embodiments of the present disclosure provide approaches that involve decryption of portions of encrypted media files while they are being played back or consumed. By decrypting portions of the files when they are needed, the entire decrypted copy of the media item is not stored in memory. Consequently, security of the media items is enhanced.
- Embodiments of the present disclosure leverage a streaming-based architecture to provide chunk-by-chunk decryption of encrypted media files. Such embodiments may implement random access into the media file with a specified starting offset. Further, such embodiments may allow for variable size chunks to be produced and consumed, depending on the available memory of the client device.
- client devices are using non-windowed operating systems in which a single application is rendered in a full-screen mode.
- client devices may be executing operating systems such as ANDROID or IOS, which embody this characteristic.
- Such client devices may have relatively small size displays, for which use of the entire display (or nearly the entire display) for an application may be preferred. Nonetheless, users may execute multiple applications, but the users may have to switch back and forth among the applications, a cumbersome procedure.
- a user may wish to watch a movie or slide show or listen to an audio program for an extended period of time. However, the user may wish to view a document, check email, send a text message, or perform other functionality while the media is being played back. With a non-windowed operating system, the user may have to send the media player to the background, which may cause the playback to stop or may at least hide the media player user interface.
- Various embodiments of the present disclosure provide floating media player user interfaces that allow the media player user interface to continue to be shown while the user interface of another application is also rendered.
- a user may be playing back a movie in a media player and may wish to switch to a social network application.
- the user may double tap the media player user interface, causing it to shrink to a smaller size.
- the user interface of the social network application may be exposed underneath the media player user interface.
- a portion of the social network application user interface may be hidden or obscured underneath the media player user interface, the user may drag the media player user interface to another location and/or resize the media player user interface.
- the user may then interact with the social network application user interface while playback of the movie continues.
- the user may double tap the media player again, causing the media player user interface to enter a full-screen mode once more.
- the client device 103 may comprise, for example, a processor-based system such as a computer system.
- a computer system may be embodied in the form of a desktop computer, a laptop computer, personal digital assistants, cellular telephones, smartphones, set-top boxes, music players, web pads, tablet computer systems, game consoles, electronic book readers, or other devices with like capability.
- the client device 103 may include a display 106 , a sound device 109 , and a secure data store 112 .
- a playback module 115 may be executed in the client device 103 .
- a streaming module 118 may be executed in the client device 103 .
- Additional applications such as browser applications, text messaging applications, social network applications, document viewing applications, and so on may also be executed in the client device 103 .
- the playback module 115 may correspond to a media player application configured to play back various types of media items. Such media items may include video files, audio files, slide show files, and/or other media files.
- the playback module 115 may be configured to obtain media item data from the streaming module 118 for playback.
- the streaming module 118 may correspond to a streaming server and may be configured to respond to requests for media items from the playback module 115 .
- the streaming module 118 may employ a streaming protocol such as, for example, hypertext transfer protocol (HTTP), real-time transport protocol (RTP), real time streaming protocol (RTSP), samba, and/or other protocols.
- HTTP hypertext transfer protocol
- RTP real-time transport protocol
- RTSP real time streaming protocol
- samba samba
- the decryption module 121 may be configured to respond to requests for decrypted chunks of encrypted media files 124 by the streaming module 118 . To this end, the decryption module 121 may utilize one or more decryption keys 127 to decrypt a portion of one of the encrypted media files 124 .
- the secure data store 112 includes encrypted media files 124 , decryption keys 127 , and/or other data.
- the data stored by the secure data store 112 may be obtained over a network from another computing device.
- the secure data store 112 may be maintained in a secure manner such that only the decryption module 121 has access to the decryption keys 127 and/or the encrypted media files 124 .
- the encrypted media files 124 may correspond to video files, audio files, slide show files, and/or other media files.
- the encrypted media files 124 are encrypted using a block cipher such as an Advanced Encryption Standard (AES) block cipher.
- AES Advanced Encryption Standard
- the block size is set at 256 bytes.
- FIG. 1 Although the embodiments of FIG. 1 include the decryption module 121 , the streaming module 118 , and the playback module 115 on a single client device 103 , it is understood that the decryption module 121 , the streaming module 118 , and the playback module 115 may be executed by separate computing devices in other embodiments, such as the embodiments represented by FIG. 2 .
- the networked environment 200 includes a computing environment 203 and a client device 103 in data communication with each other via a network 209 .
- the network 209 includes, for example, the Internet, one or more intranets, extranets, wide area networks (WANs), local area networks (LANs), wired networks, wireless networks, other suitable networks, or any combination of two or more such networks.
- WANs wide area networks
- LANs local area networks
- wired networks wireless networks
- wireless networks other suitable networks, or any combination of two or more such networks.
- such networks 209 may comprise satellite networks, cable networks, Ethernet networks, telephony networks, and other types of networks.
- the computing environment 203 may comprise, for example, a server computer or any other system providing computing capability.
- the computing environment 203 may employ multiple computing devices that may be arranged, for example, in one or more server banks, computer banks, or other arrangements. Such computing devices may be located in a single installation or may be distributed among many different geographical locations.
- the computing environment 203 may include multiple computing devices that together form a hosted or “cloud” computing resource, a grid computing resource, and/or any other distributed computing arrangement.
- the computing environment 203 may correspond to an elastic computing resource where the allotted capacity of processing, network, storage, or other computing-related resources may vary over time.
- the computing environment 203 may also include or correspond to one or more virtualized server instances that are created in order to execute the functionality that is described herein.
- Various systems and/or other functionality may be executed in the computing environment 203 according to various embodiments.
- various data is stored in a secure data store 112 that is accessible to the computing environment 203 .
- the secure data store 112 may be representative of a plurality of secure data stores 112 .
- the data stored in the secure data store 112 is associated with the operation of the various systems and/or functional entities described below.
- the decryption module 121 and the streaming module 118 are located server-side, while the playback module 115 is located client-side.
- the playback module 115 and the streaming module 118 may interact in a similar manner as in FIG. 1 . It is noted that the decrypted chunks of media data passed by the streaming module 118 to the playback module 115 may occur over a separately encrypted channel using secure sockets layer (SSL), transport layer security (TLS), and/or other encryption approaches.
- SSL secure sockets layer
- TLS transport layer security
- FIG. 3 shown is a flowchart that provides one example of the operation of a portion of the playback module 115 according to various embodiments. It is understood that the flowchart of FIG. 3 provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the portion of the playback module 115 as described herein. As an alternative, the flowchart of FIG. 3 may be viewed as depicting an example of elements of a method implemented in the client device 103 ( FIGS. 1 & 2 ) according to one or more embodiments.
- the playback module 115 determines available media items corresponding to the encrypted media files 124 ( FIGS. 1 & 2 ).
- the playback module 115 may request a listing from a local service or network service, or the playback module 115 may query the secure data store 112 directly.
- Availability may depend upon the presence of an authenticated user at the client device 103 .
- the user may have to supply security credentials (e.g., username, password, etc.) and/or authenticate using biometric identification (e.g., face recognition, voice recognition, fingerprint recognition, etc.).
- the playback module 115 may render the listing of available media items upon the display 106 ( FIGS. 1 & 2 ).
- the playback module 115 obtains a user selection of a particular media item.
- the playback module 115 determines a starting offset for the media item. If the playback is commencing at the beginning of the media item, the starting offset may be 0. In some cases, the starting offset may be advanced into the media item due to resuming paused playback, user-requested seeking, and/or for other reasons. The offset may be in bytes, frames, chunks, milliseconds, or some other measurement.
- the playback module 115 requests a portion of the media item from the streaming module 118 ( FIGS. 1 & 2 ).
- the playback module 115 may open a socket or other connection to the streaming module 118 and then issue a request for the portion of the media item.
- the communication may be via HTTP, RTP, RTSP, samba, or another streaming protocol.
- the request by the playback module 115 may specify the offset determined in box 312 .
- the request may also specify a portion size.
- the playback module 115 may be configured to determine the portion size based at least in part on an amount of available memory or temporary data storage in the client device 103 .
- the playback module 115 may divide the amount of available memory by a constant factor, such as 8. Greater portion sizes may provide more flexibility if the user would like to seek ahead, but the portion size should be selected not to overwhelm the available memory. Smaller portion sizes reduce memory utilization and may be more secure.
- the constant factor may be selected to be a power of two. It is noted that the portion size may be determined dynamically and may vary from portion to portion based at least in part on the available memory.
- the playback module 115 obtains the requested portion of the media item from the streaming module 118 .
- the playback module 115 renders the portion of the media item using one or more output devices, such as the sound device 109 ( FIGS. 1 & 2 ) or the display 106 ( FIGS. 1 & 2 ).
- the playback module 115 may remove the portion of the media item from the memory of the client device 103 .
- the playback module 115 determines whether another portion of the media item is to be requested. If so, the playback module 115 returns to box 312 and determines the offset for the next portion. The offset may be determined as the previous offset plus a measure relating to the size of the last consumed portion. If another portion is not to be requested, the end of the media item (i.e., the final portion) has been reached, and the operation of the playback module 115 ends.
- FIG. 4 shown is a flowchart that provides one example of the operation of a portion of the streaming module 118 according to various embodiments. It is understood that the flowchart of FIG. 4 provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the portion of the streaming module 118 as described herein. As an alternative, the flowchart of FIG. 4 may be viewed as depicting an example of elements of a method implemented in the client device 103 or the computing environment 203 ( FIGS. 1 & 2 ) according to one or more embodiments.
- the streaming module 118 receives a request for a portion of a media item from a playback module 115 ( FIGS. 1 & 2 ).
- the request may identify a specific media item and a starting offset.
- the request may specify a size of the requested portion.
- the streaming module 118 may calculate the size of the requested portion based at least in part on an amount of available memory in the client device 103 .
- the streaming module 118 may authenticate the playback module 115 and confirm that the playback module 115 should have access to the media item.
- the streaming module 118 requests decryption of an encrypted media file 124 ( FIGS. 1 & 2 ) by the decryption module 121 ( FIGS. 1 & 2 ).
- the request by the streaming module 118 may specify an offset in the encrypted media file 124 and a size of the requested portion.
- the decryption module 121 may determine the size of the requested portion.
- the specified size may pertain to the decrypted data and/or the encrypted media file 124 .
- the decryption module 121 may be configured to store the decrypted media data in a temporary data storage, from which it supplies the decrypted media data to the streaming module 118 .
- the streaming module 118 receives decrypted media data from the decryption module 121 .
- the decryption module 121 may be configured to overwrite or erase the decrypted media data in a temporary data storage after providing the decrypted media data to the streaming module 118 .
- a user may request that the playback module 115 perform a reverse play (i.e., a rewind) of media content.
- the temporary data storage may have already been cleared, and thus the decryption module 121 would need to again decrypt the media content that was just viewed. That is to say, in one embodiment, after the decrypted media data is consumed the first time, it may be erased.
- the streaming module 118 sends the decrypted media data to the playback module 115 in response to the request.
- the decrypted media data may be sent to the playback module 115 by way of an encrypted channel.
- the streaming module 118 determines whether another request for a subsequent portion of the media item is received from the playback module 115 . If another request is received, the streaming module 118 returns to box 403 . Otherwise, the operation of the portion of the streaming module 118 ends.
- FIG. 5 shown is one example of a media player user interface 500 rendered upon a display 106 by a playback module 115 ( FIGS. 1 & 2 ) executed in a client device 103 according to various embodiments of the present disclosure.
- the client device 103 may correspond to a mobile device executing a non-windowed operating system.
- the display 106 of the client device 103 may correspond to a touchscreen.
- the playback module 115 comprises a service, which is an application component that can perform long-running operations in the background and ordinarily does not provide a user interface. Another application component can start a service, and the service may continue to run in the background even if the user switches to another application.
- the playback module 115 may implement a custom Frame Layout class, e.g., under an Android operating system platform.
- the Frame Layout may be configured to act as a floating window to which any views within layouts may be attached.
- Various touch listeners may be registered to this custom Frame Layout in order to recognize multi-touch gestures upon the display 106 .
- a setting may be employed (e.g., in AndroidManifest.xml) that allows an application to open windows using the type TYPE_SYSTEM_ALERT on top of all other applications.
- the media player user interface 500 may be of a system alert type in order to be shown on top of other user interfaces.
- the playback module 115 is rendering a video 503 in a full-screen mode.
- a notifications bar 506 may be present.
- the media player user interface 500 may have a seek control 509 as well as other controls 512 .
- the other controls 512 may include a previous item control, a next item control, a reverse seek control, a forward seek control, a pause control, a play control, a repeat control, a pop-out control, and/or other controls.
- the media player user interface 500 may also include other information 515 such as current time in the media item, time remaining in the media item, and so on.
- FIG. 6 shown is another example of a media player user interface 500 rendered upon a display 106 by a playback module 115 ( FIGS. 1 & 2 ) executed in a client device 103 according to various embodiments of the present disclosure.
- the media player user interface 500 has been “popped out” of full-screen mode and is now in floating mode.
- a pop-out control may have been activated, or a specific user gesture may have been performed (e.g., a double tap).
- the media player user interface 500 has been sized smaller than before, thereby revealing a user interface 600 for another application executed in the client device 103 .
- the other application corresponds to a file browser.
- the media player user interface 500 occupies a first region of the display 106
- the user interface 600 in full-screen mode, occupies a second region of the display 106 .
- the media player user interface 500 covers over and obscures a first portion of the user interface 600 , while a second portion of the user interface 600 is visible.
- the content of the media player user interface 500 has been simplified as compared to FIG. 5 in order to reduce the screen area.
- the user may interact with the user interface 600 while the playback module 115 continues to play back the media item in the media player user interface 500 .
- the media player user interface 500 may remain on top of the user interface 600 during the user interaction.
- the user may elect to return the media player user interface 500 to the full-screen mode as shown in FIG. 5 by way of a double tap, or another gesture.
- the user may switch the user interface 600 to be the user interface of yet another application if desired, all while the playback module 115 continues playback.
- FIG. 7 illustrates a movement of the media player user interface 500 as compared to the example of FIG. 6 .
- This is one type of transformation of the media player user interface 500 .
- the user may have simply executed a drag gesture upon the media player user interface 500 and repositioned the media player user interface 500 relative to the user interface 600 .
- the playback by the playback module 115 may continue during and/or after the movement of the media player user interface 500 .
- a different portion of the user interface 600 is obscured by the media player user interface 500 , and a different portion of the user interface 600 is revealed.
- FIG. 8 illustrates a resizing of the media player user interface 500 as compared to the example of FIG. 6 .
- the media player user interface 500 may recognize pinch gestures, zoom gestures, and/or other gestures to effect a resizing of the media player user interface 500 .
- the user may place two fingers close together upon the display 106 above the media player user interface 500 and then spread them apart (a zoom gesture) in order to resize the media player user interface 500 larger. Accordingly, a larger portion of the user interface 600 may be obscured by the larger media player user interface 500 .
- the user may place two fingers spread apart upon the display 106 above the media player user interface 500 and then draw them closer together (a pinch gesture) in order to resize the media player user interface 500 smaller. Accordingly, a smaller portion of the user interface 600 may be obscured by a smaller media player user interface 500 .
- FIG. 9 shown is a flowchart that provides one example of the operation of a portion of the playback module 115 according to various embodiments. It is understood that the flowchart of FIG. 9 provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the portion of the playback module 115 as described herein. As an alternative, the flowchart of FIG. 9 may be viewed as depicting an example of elements of a method implemented in the client device 103 ( FIGS. 1 & 2 ) according to one or more embodiments.
- the playback module 115 renders a media player user interface 500 ( FIG. 5 ) in a full-screen mode upon a display 106 ( FIG. 5 ) of a client device 103 ( FIG. 5 ).
- the playback module 115 receives a selection of a media item by a user.
- the playback module 115 commences playback of the selected media item.
- the playback module 115 receives a pop-out user gesture. For example, the user may double tap upon the media player user interface 500 . Alternatively, the user may select a pop-out control. In box 915 , the playback module 115 renders the media player user interface 500 in floating mode as in FIG. 6 in response to the pop-out user gesture.
- the playback module 115 may receive a drag gesture.
- the playback module 115 moves the media player user interface 500 as in FIG. 7 in response to the drag gesture.
- the playback module 115 may receive a pinch or zoom gesture.
- the playback module 115 resizes the media player user interface 500 as in FIG. 8 in response to the pinch or zoom gesture. Thereafter, the operation of the playback module 115 ends.
- the media player user interfaces 500 of FIGS. 5-8 depict a rendering of a video 503
- the media player user interfaces 500 may pertain to playback of a slide show, purely audio, and/or other forms of media items in other examples.
- Such media items may include documents such as portable document format (PDF) documents, MICROSOFT OFFICE documents, and/or other documents.
- PDF portable document format
- various other gestures may be recognized. For example, a single tap gesture may cause playback by the playback module 115 to stop and/or be paused.
- FIGS. 5-8 depict client devices 103 that are mobile devices, it is understood that the principles of the present disclosure may be applied to workstations and/or non-mobile computing devices as well.
- each element may represent a module of code or a portion of code that comprises program instructions to implement the specified logical function(s).
- the program instructions may be embodied in the form of, for example, source code that comprises human-readable statements written in a programming language and/or machine code that comprises machine instructions recognizable by a suitable execution system, such as a processor in a computer system or other system.
- each element may represent a circuit or a number of interconnected circuits that implement the specified logical function(s).
- the computing environment 203 , client device 103 , and/or other components described herein may each include at least one processing circuit.
- a processing circuit may comprise, for example, one or more processors and one or more storage devices that are coupled to a local interface.
- the local interface may comprise, for example, a data bus with an accompanying address/control bus or any other suitable bus structure.
- the one or more storage devices for a processing circuit may store data and/or components that are executable by the one or processors of the processing circuit.
- the playback module 115 , the streaming module 118 , the decryption module 121 , and/or other components may be stored in one or more storage devices and be executable by one or more processors.
- a data store such as the secure data store 112 , may be stored in the one or more storage devices.
- the playback module 115 , the streaming module 118 , the decryption module 121 , and other components described herein may be embodied in the form of hardware, as software components that are executable by hardware, or as a combination of software and hardware. If embodied as hardware, the components described herein can be implemented as a circuit or state machine that employs any suitable hardware technology.
- Such hardware technology may include, for example but is not limited to, one or more microprocessors, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits (ASICs) having appropriate logic gates, programmable logic devices (e.g., field-programmable gate array (FPGAs) and complex programmable logic devices (CPLDs)), etc.
- one or more or more of the components described herein that comprises software or program instructions can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, for example, a processor in a computer system or other system.
- an instruction execution system such as, for example, a processor in a computer system or other system.
- Such a computer-readable medium may contain, store, and/or maintain the software or program instructions for use by or in connection with the instruction execution system.
- the computer-readable medium can comprise a physical media, such as, magnetic, optical, semiconductor, and/or other suitable media.
- a suitable computer-readable media include, but are not limited to, solid-state drives, magnetic drives, flash memory, etc.
- any logic or component described herein may be implemented and structured in a variety of ways. For example, one or more components described may be implemented as modules or components of a single application. Further, one or more components described herein may be executed in one computing device or by using multiple computing devices. Additionally, it is understood that terms such as “application,” “service,” “system,” “engine,” “module,” and so on, may be interchangeable and are not intended to be limiting unless indicated otherwise.
- a non-transitory computer-readable medium embodying at least one program executable in at least one computing device comprising: a decryption module; a streaming module; a playback module configured to at least request media data from the streaming module and render the media data using at least one output device of the at least one computing device; the streaming module being configured to at least obtain the media data from the decryption module by a request specifying a size of the media data, the size being dynamically determined based at least in part on an amount of available temporary data storage; and the decryption module being configured to decrypt a portion of an encrypted media file based at least in part on the specified size to produce the media data.
- a client device configured to at least: identify, by a playback module, a media item; request, by the playback module, a first portion of the media item from a streaming module; obtain, by the streaming module, the first portion of the media item from a decryption module; decrypt, by the decryption module, the first portion of the media item from an encrypted media file; deliver, by the decryption module, the first portion of the media item to the streaming module; and deliver, by the streaming module, the first portion of the media item to the playback module.
- the client device of clause 7, being further configured to at least: determine an amount of available temporary data storage of the client device; and determine a size of the first portion of the media item by dividing the amount of available temporary data storage by a constant factor.
- the client device of clause 7, being further configured to at least: obtain, by the playback module, a user selection of the media item from a listing of a plurality of media items.
- the client device of clause 7, being further configured to at least: render, by the playback module, the first portion of the media item using at least one of: a display device of the client device or a sound device of the client device.
- a method comprising: decrypting, by a decryption service of at least one computing device, an encrypted media file to generate decrypted media data; supplying, by the decryption service of the at least one computing device, a portion of the decrypted media data to a streaming service of the at least one computing device in response to a first request, wherein the first request is made by the streaming service; and sending, by the streaming service of the at least one computing device, the portion of the decrypted media data to a playback service of the at least one computing device in response to a second request, wherein the second request is made by the playback service.
- a non-transitory computer-readable medium embodying a service executable in a mobile device comprising: code that identifies a media item; code that obtains data corresponding to the media item; code that performs a playback of the media item using at least one output device of the mobile device code that renders a first user interface corresponding to the playback of the media item upon a display of the mobile device, the first user interface being rendered in a first region of the display such that a second user interface corresponding to another application is visible in a second region of the display, the first user interface being of a system alert type; code that facilitates a movement of the first user interface on the display in response to a first user gesture; and code that facilitates a resizing of the first user interface on the display in response to a second user gesture.
- a client device configured to at least: render a first user interface of a media player in a first region upon a display of the client device, the client device having a non-windowed operating system, the first user interface being of a system alert type; render a second user interface of another application in a second region upon the display, the first user interface partially overlapping the second user interface such that a first portion of the second user interface is obscured by the first user interface and a second portion of the second user interface is visible; receive a user gesture; and apply a transformation to the first user interface in response to the user gesture.
- a method comprising: rendering, by a client device having a non-windowed operating system, a first user interface upon a display, the first user interface corresponding to a media player; commencing, by the client device, a playback of a media item in the first user interface; receiving, by the client device, a first user gesture; resizing, by the client device, the first user interface to expose a portion of a second user interface upon the display below the first user interface in response to the first user gesture, the second user interface corresponding to another application; receiving, by the client device, a second user gesture; and moving, by the client device, the first user interface so that a different portion of the second user interface is rendered upon the display in response to the second user gesture.
Abstract
Disclosed are various embodiments relating to a floating media player. A playback of a media item is performed using an output device of a client device. A first user interface corresponding to the playback of the media item is rendered upon a display of the client device. The first user interface is rendered in a first region of the display such that a second user interface is visible in a second region of the display. A movement of the first user interface is facilitated in response to a first user gesture. A resizing of the first user interface is facilitated in response to a second user gesture.
Description
- Benefit is claimed under 35 U.S.C. 119(a)-(d) to Foreign application Serial No. 6747/CHE/2014 filed in India entitled “FLOATING MEDIA PLAYER”, on Dec. 30, 2014, by AIR WATCH LLC, which is herein incorporated in its entirety by reference for all purposes
- This application is also related to U.S. patent application Ser. No. 14/691,596, entitled “SECURITY FRAMEWORK FOR MEDIA PLAYBACK”, which is assigned to the assignee of this application and has been filed on the same day as this application.
- Mobile devices are increasingly being used to play back a variety of media, including video streams, audio streams, slide shows, and other forms of media. Although mobile devices may lack digital video disc (DVD) drives and have less data storage than desktop workstations, WI-FI and 4G wireless technologies may make it possible to stream videos and other high bitrate media to the devices. A typical media playback experience upon a mobile device involves a full-screen presentation. If the user wishes to work in another application, the user may have to send the media player to the background and switch to the other application.
- Many aspects of the present disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, with emphasis instead being placed upon clearly illustrating the principles of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
-
FIG. 1 is a schematic block diagram of a client device according to various embodiments of the present disclosure. -
FIG. 2 is a schematic block diagram of a networked environment according to various embodiments of the present disclosure. -
FIG. 3 is a flowchart illustrating one example of functionality implemented as portions of a playback module executed in the client device ofFIG. 1 or 2 according to various embodiments of the present disclosure. -
FIG. 4 is a flowchart illustrating one example of functionality implemented as portions of a streaming module executed in the client device ofFIG. 1 or the computing environment ofFIG. 2 according to various embodiments of the present disclosure. -
FIG. 5 is a pictorial diagram of an example media player user interface rendered in full-screen mode by the client device ofFIG. 1 or 2 according to various embodiments of the present disclosure. -
FIGS. 6-8 are pictorial diagrams of example media player user interfaces rendered in floating mode by the client device ofFIG. 1 or 2 according to various embodiments of the present disclosure. -
FIG. 9 is a flowchart illustrating one example of functionality implemented as portions of a playback module executed in the client device ofFIG. 1 or 2 according to various embodiments of the present disclosure. - The present disclosure relates to media players and a security framework therefor. Secure management of digital media can be challenging. Content rights must be protected against dangers of unauthorized copying. Unauthorized copying may be problematic from the standpoint of media piracy. In some cases, media items may be confidential and proprietary to a business organization, and any disclosure may harm the interests of the business organization. In other cases, media items may be personal for a user, and any disclosure would violate the privacy of the user. One approach to maintaining security of media items would be to encrypt the media files and to decrypt them when they are played back. However, this approach creates a full copy of the decrypted media item, which may allow the copy as a whole to be intercepted on the device or during transit to the device.
- Various embodiments of the present disclosure provide approaches that involve decryption of portions of encrypted media files while they are being played back or consumed. By decrypting portions of the files when they are needed, the entire decrypted copy of the media item is not stored in memory. Consequently, security of the media items is enhanced. Embodiments of the present disclosure leverage a streaming-based architecture to provide chunk-by-chunk decryption of encrypted media files. Such embodiments may implement random access into the media file with a specified starting offset. Further, such embodiments may allow for variable size chunks to be produced and consumed, depending on the available memory of the client device.
- The present disclosure also relates to media player user interfaces. Increasingly, client devices are using non-windowed operating systems in which a single application is rendered in a full-screen mode. For example, client devices may be executing operating systems such as ANDROID or IOS, which embody this characteristic. Such client devices may have relatively small size displays, for which use of the entire display (or nearly the entire display) for an application may be preferred. Nonetheless, users may execute multiple applications, but the users may have to switch back and forth among the applications, a cumbersome procedure.
- With respect to media players, a user may wish to watch a movie or slide show or listen to an audio program for an extended period of time. However, the user may wish to view a document, check email, send a text message, or perform other functionality while the media is being played back. With a non-windowed operating system, the user may have to send the media player to the background, which may cause the playback to stop or may at least hide the media player user interface.
- Various embodiments of the present disclosure provide floating media player user interfaces that allow the media player user interface to continue to be shown while the user interface of another application is also rendered. As a non-limiting example, a user may be playing back a movie in a media player and may wish to switch to a social network application. The user may double tap the media player user interface, causing it to shrink to a smaller size. By shrinking to a smaller size user interface, the user interface of the social network application may be exposed underneath the media player user interface. Although a portion of the social network application user interface may be hidden or obscured underneath the media player user interface, the user may drag the media player user interface to another location and/or resize the media player user interface. The user may then interact with the social network application user interface while playback of the movie continues. When finished with the social network application, the user may double tap the media player again, causing the media player user interface to enter a full-screen mode once more.
- In the following discussion, a general description of the system and its components is provided, followed by a discussion of the operation of the same.
- With reference to
FIG. 1 , shown is aclient device 103 according to various embodiments of the present disclosure. Theclient device 103 may comprise, for example, a processor-based system such as a computer system. Such a computer system may be embodied in the form of a desktop computer, a laptop computer, personal digital assistants, cellular telephones, smartphones, set-top boxes, music players, web pads, tablet computer systems, game consoles, electronic book readers, or other devices with like capability. Theclient device 103 may include adisplay 106, asound device 109, and asecure data store 112. - Various systems and/or other functionality may be executed in the
client device 103 according to various embodiments. In particular, aplayback module 115, astreaming module 118, and adecryption module 121 may be executed in theclient device 103. Additional applications such as browser applications, text messaging applications, social network applications, document viewing applications, and so on may also be executed in theclient device 103. - The
playback module 115 may correspond to a media player application configured to play back various types of media items. Such media items may include video files, audio files, slide show files, and/or other media files. Theplayback module 115 may be configured to obtain media item data from thestreaming module 118 for playback. - The
streaming module 118 may correspond to a streaming server and may be configured to respond to requests for media items from theplayback module 115. Thestreaming module 118 may employ a streaming protocol such as, for example, hypertext transfer protocol (HTTP), real-time transport protocol (RTP), real time streaming protocol (RTSP), samba, and/or other protocols. - The
decryption module 121 may be configured to respond to requests for decrypted chunks ofencrypted media files 124 by thestreaming module 118. To this end, thedecryption module 121 may utilize one ormore decryption keys 127 to decrypt a portion of one of theencrypted media files 124. - The
secure data store 112 includesencrypted media files 124,decryption keys 127, and/or other data. In some cases, the data stored by thesecure data store 112 may be obtained over a network from another computing device. Thesecure data store 112 may be maintained in a secure manner such that only thedecryption module 121 has access to thedecryption keys 127 and/or the encrypted media files 124. Theencrypted media files 124 may correspond to video files, audio files, slide show files, and/or other media files. In one embodiment, theencrypted media files 124 are encrypted using a block cipher such as an Advanced Encryption Standard (AES) block cipher. In one embodiment, the block size is set at 256 bytes. - Although the embodiments of
FIG. 1 include thedecryption module 121, thestreaming module 118, and theplayback module 115 on asingle client device 103, it is understood that thedecryption module 121, thestreaming module 118, and theplayback module 115 may be executed by separate computing devices in other embodiments, such as the embodiments represented byFIG. 2 . - With reference to
FIG. 2 , shown is anetworked environment 200 according to various embodiments. Thenetworked environment 200 includes acomputing environment 203 and aclient device 103 in data communication with each other via anetwork 209. Thenetwork 209 includes, for example, the Internet, one or more intranets, extranets, wide area networks (WANs), local area networks (LANs), wired networks, wireless networks, other suitable networks, or any combination of two or more such networks. For example,such networks 209 may comprise satellite networks, cable networks, Ethernet networks, telephony networks, and other types of networks. - The
computing environment 203 may comprise, for example, a server computer or any other system providing computing capability. Alternatively, thecomputing environment 203 may employ multiple computing devices that may be arranged, for example, in one or more server banks, computer banks, or other arrangements. Such computing devices may be located in a single installation or may be distributed among many different geographical locations. For example, thecomputing environment 203 may include multiple computing devices that together form a hosted or “cloud” computing resource, a grid computing resource, and/or any other distributed computing arrangement. In some cases, thecomputing environment 203 may correspond to an elastic computing resource where the allotted capacity of processing, network, storage, or other computing-related resources may vary over time. Thecomputing environment 203 may also include or correspond to one or more virtualized server instances that are created in order to execute the functionality that is described herein. - Various systems and/or other functionality may be executed in the
computing environment 203 according to various embodiments. Also, various data is stored in asecure data store 112 that is accessible to thecomputing environment 203. Thesecure data store 112 may be representative of a plurality ofsecure data stores 112. The data stored in thesecure data store 112, for example, is associated with the operation of the various systems and/or functional entities described below. - In
FIG. 2 , thedecryption module 121 and thestreaming module 118 are located server-side, while theplayback module 115 is located client-side. Theplayback module 115 and thestreaming module 118 may interact in a similar manner as inFIG. 1 . It is noted that the decrypted chunks of media data passed by thestreaming module 118 to theplayback module 115 may occur over a separately encrypted channel using secure sockets layer (SSL), transport layer security (TLS), and/or other encryption approaches. - Referring next to
FIG. 3 , shown is a flowchart that provides one example of the operation of a portion of theplayback module 115 according to various embodiments. It is understood that the flowchart ofFIG. 3 provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the portion of theplayback module 115 as described herein. As an alternative, the flowchart ofFIG. 3 may be viewed as depicting an example of elements of a method implemented in the client device 103 (FIGS. 1 & 2 ) according to one or more embodiments. - Beginning with
box 303, theplayback module 115 determines available media items corresponding to the encrypted media files 124 (FIGS. 1 & 2 ). Theplayback module 115 may request a listing from a local service or network service, or theplayback module 115 may query thesecure data store 112 directly. Availability may depend upon the presence of an authenticated user at theclient device 103. In this regard, the user may have to supply security credentials (e.g., username, password, etc.) and/or authenticate using biometric identification (e.g., face recognition, voice recognition, fingerprint recognition, etc.). Inbox 306, theplayback module 115 may render the listing of available media items upon the display 106 (FIGS. 1 & 2 ). - In
box 309, theplayback module 115 obtains a user selection of a particular media item. Inbox 312, theplayback module 115 determines a starting offset for the media item. If the playback is commencing at the beginning of the media item, the starting offset may be 0. In some cases, the starting offset may be advanced into the media item due to resuming paused playback, user-requested seeking, and/or for other reasons. The offset may be in bytes, frames, chunks, milliseconds, or some other measurement. - In
box 315, theplayback module 115 requests a portion of the media item from the streaming module 118 (FIGS. 1 & 2 ). In this regard, theplayback module 115 may open a socket or other connection to thestreaming module 118 and then issue a request for the portion of the media item. The communication may be via HTTP, RTP, RTSP, samba, or another streaming protocol. The request by theplayback module 115 may specify the offset determined inbox 312. - In some embodiments, the request may also specify a portion size. The
playback module 115 may be configured to determine the portion size based at least in part on an amount of available memory or temporary data storage in theclient device 103. For example, theplayback module 115 may divide the amount of available memory by a constant factor, such as 8. Greater portion sizes may provide more flexibility if the user would like to seek ahead, but the portion size should be selected not to overwhelm the available memory. Smaller portion sizes reduce memory utilization and may be more secure. The constant factor may be selected to be a power of two. It is noted that the portion size may be determined dynamically and may vary from portion to portion based at least in part on the available memory. - In
box 316, theplayback module 115 obtains the requested portion of the media item from thestreaming module 118. Inbox 318, theplayback module 115 renders the portion of the media item using one or more output devices, such as the sound device 109 (FIGS. 1 & 2 ) or the display 106 (FIGS. 1 & 2 ). Inbox 321, theplayback module 115 may remove the portion of the media item from the memory of theclient device 103. - In
box 324, theplayback module 115 determines whether another portion of the media item is to be requested. If so, theplayback module 115 returns tobox 312 and determines the offset for the next portion. The offset may be determined as the previous offset plus a measure relating to the size of the last consumed portion. If another portion is not to be requested, the end of the media item (i.e., the final portion) has been reached, and the operation of theplayback module 115 ends. - Moving on to
FIG. 4 , shown is a flowchart that provides one example of the operation of a portion of thestreaming module 118 according to various embodiments. It is understood that the flowchart ofFIG. 4 provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the portion of thestreaming module 118 as described herein. As an alternative, the flowchart ofFIG. 4 may be viewed as depicting an example of elements of a method implemented in theclient device 103 or the computing environment 203 (FIGS. 1 & 2 ) according to one or more embodiments. - Beginning with
box 403, thestreaming module 118 receives a request for a portion of a media item from a playback module 115 (FIGS. 1 & 2 ). The request may identify a specific media item and a starting offset. In some cases, the request may specify a size of the requested portion. In other cases, thestreaming module 118 may calculate the size of the requested portion based at least in part on an amount of available memory in theclient device 103. As a prerequisite, thestreaming module 118 may authenticate theplayback module 115 and confirm that theplayback module 115 should have access to the media item. - In
box 406, thestreaming module 118 requests decryption of an encrypted media file 124 (FIGS. 1 & 2 ) by the decryption module 121 (FIGS. 1 & 2 ). The request by thestreaming module 118 may specify an offset in theencrypted media file 124 and a size of the requested portion. In other embodiments, thedecryption module 121 may determine the size of the requested portion. Also, it is noted that the specified size may pertain to the decrypted data and/or theencrypted media file 124. Thedecryption module 121 may be configured to store the decrypted media data in a temporary data storage, from which it supplies the decrypted media data to thestreaming module 118. - In
box 409, thestreaming module 118 receives decrypted media data from thedecryption module 121. Thedecryption module 121 may be configured to overwrite or erase the decrypted media data in a temporary data storage after providing the decrypted media data to thestreaming module 118. As an example, a user may request that theplayback module 115 perform a reverse play (i.e., a rewind) of media content. At the point that the user requests to perform the reverse play, the temporary data storage may have already been cleared, and thus thedecryption module 121 would need to again decrypt the media content that was just viewed. That is to say, in one embodiment, after the decrypted media data is consumed the first time, it may be erased. - In
box 412, thestreaming module 118 sends the decrypted media data to theplayback module 115 in response to the request. In one embodiment, the decrypted media data may be sent to theplayback module 115 by way of an encrypted channel. Inbox 415, thestreaming module 118 determines whether another request for a subsequent portion of the media item is received from theplayback module 115. If another request is received, thestreaming module 118 returns tobox 403. Otherwise, the operation of the portion of thestreaming module 118 ends. - With reference to
FIG. 5 , shown is one example of a mediaplayer user interface 500 rendered upon adisplay 106 by a playback module 115 (FIGS. 1 & 2 ) executed in aclient device 103 according to various embodiments of the present disclosure. Theclient device 103 may correspond to a mobile device executing a non-windowed operating system. Thedisplay 106 of theclient device 103 may correspond to a touchscreen. - In one implementation, the
playback module 115 comprises a service, which is an application component that can perform long-running operations in the background and ordinarily does not provide a user interface. Another application component can start a service, and the service may continue to run in the background even if the user switches to another application. Theplayback module 115 may implement a custom Frame Layout class, e.g., under an Android operating system platform. The Frame Layout may be configured to act as a floating window to which any views within layouts may be attached. Various touch listeners may be registered to this custom Frame Layout in order to recognize multi-touch gestures upon thedisplay 106. For any other application to allow another window on top of the main window, a setting may be employed (e.g., in AndroidManifest.xml) that allows an application to open windows using the type TYPE_SYSTEM_ALERT on top of all other applications. Thus, the mediaplayer user interface 500 may be of a system alert type in order to be shown on top of other user interfaces. - In this example, the
playback module 115 is rendering avideo 503 in a full-screen mode. Despite being in a full-screen mode, anotifications bar 506 may be present. The mediaplayer user interface 500 may have a seekcontrol 509 as well as other controls 512. The other controls 512 may include a previous item control, a next item control, a reverse seek control, a forward seek control, a pause control, a play control, a repeat control, a pop-out control, and/or other controls. The mediaplayer user interface 500 may also includeother information 515 such as current time in the media item, time remaining in the media item, and so on. - Turning now to
FIG. 6 , shown is another example of a mediaplayer user interface 500 rendered upon adisplay 106 by a playback module 115 (FIGS. 1 & 2 ) executed in aclient device 103 according to various embodiments of the present disclosure. In this example, the mediaplayer user interface 500 has been “popped out” of full-screen mode and is now in floating mode. To this end, a pop-out control may have been activated, or a specific user gesture may have been performed (e.g., a double tap). - The media
player user interface 500 has been sized smaller than before, thereby revealing auser interface 600 for another application executed in theclient device 103. In this example, the other application corresponds to a file browser. As shown inFIG. 6 , the mediaplayer user interface 500 occupies a first region of thedisplay 106, while theuser interface 600, in full-screen mode, occupies a second region of thedisplay 106. The mediaplayer user interface 500 covers over and obscures a first portion of theuser interface 600, while a second portion of theuser interface 600 is visible. - The content of the media
player user interface 500 has been simplified as compared toFIG. 5 in order to reduce the screen area. Also, it is noted that the user may interact with theuser interface 600 while theplayback module 115 continues to play back the media item in the mediaplayer user interface 500. The mediaplayer user interface 500 may remain on top of theuser interface 600 during the user interaction. Optionally, the user may elect to return the mediaplayer user interface 500 to the full-screen mode as shown inFIG. 5 by way of a double tap, or another gesture. Also, the user may switch theuser interface 600 to be the user interface of yet another application if desired, all while theplayback module 115 continues playback. -
FIG. 7 illustrates a movement of the mediaplayer user interface 500 as compared to the example ofFIG. 6 . This is one type of transformation of the mediaplayer user interface 500. In this case, the user may have simply executed a drag gesture upon the mediaplayer user interface 500 and repositioned the mediaplayer user interface 500 relative to theuser interface 600. The playback by theplayback module 115 may continue during and/or after the movement of the mediaplayer user interface 500. As a consequence of the movement, a different portion of theuser interface 600 is obscured by the mediaplayer user interface 500, and a different portion of theuser interface 600 is revealed. -
FIG. 8 illustrates a resizing of the mediaplayer user interface 500 as compared to the example ofFIG. 6 . This is another type of transformation of the mediaplayer user interface 500. The mediaplayer user interface 500 may recognize pinch gestures, zoom gestures, and/or other gestures to effect a resizing of the mediaplayer user interface 500. For example, the user may place two fingers close together upon thedisplay 106 above the mediaplayer user interface 500 and then spread them apart (a zoom gesture) in order to resize the mediaplayer user interface 500 larger. Accordingly, a larger portion of theuser interface 600 may be obscured by the larger mediaplayer user interface 500. - Similarly, the user may place two fingers spread apart upon the
display 106 above the mediaplayer user interface 500 and then draw them closer together (a pinch gesture) in order to resize the mediaplayer user interface 500 smaller. Accordingly, a smaller portion of theuser interface 600 may be obscured by a smaller mediaplayer user interface 500. - Continuing to
FIG. 9 , shown is a flowchart that provides one example of the operation of a portion of theplayback module 115 according to various embodiments. It is understood that the flowchart ofFIG. 9 provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the portion of theplayback module 115 as described herein. As an alternative, the flowchart ofFIG. 9 may be viewed as depicting an example of elements of a method implemented in the client device 103 (FIGS. 1 & 2 ) according to one or more embodiments. - Beginning with
box 903, theplayback module 115 renders a media player user interface 500 (FIG. 5 ) in a full-screen mode upon a display 106 (FIG. 5 ) of a client device 103 (FIG. 5 ). Inbox 906, theplayback module 115 receives a selection of a media item by a user. Inbox 909, theplayback module 115 commences playback of the selected media item. - In
box 912, theplayback module 115 receives a pop-out user gesture. For example, the user may double tap upon the mediaplayer user interface 500. Alternatively, the user may select a pop-out control. Inbox 915, theplayback module 115 renders the mediaplayer user interface 500 in floating mode as inFIG. 6 in response to the pop-out user gesture. - In
box 918, theplayback module 115 may receive a drag gesture. Inbox 921, theplayback module 115 moves the mediaplayer user interface 500 as inFIG. 7 in response to the drag gesture. - In
box 924, theplayback module 115 may receive a pinch or zoom gesture. Inbox 927, theplayback module 115 resizes the mediaplayer user interface 500 as inFIG. 8 in response to the pinch or zoom gesture. Thereafter, the operation of theplayback module 115 ends. - Although the media
player user interfaces 500 ofFIGS. 5-8 depict a rendering of avideo 503, it is understood that the mediaplayer user interfaces 500 may pertain to playback of a slide show, purely audio, and/or other forms of media items in other examples. Such media items may include documents such as portable document format (PDF) documents, MICROSOFT OFFICE documents, and/or other documents. Also, various other gestures may be recognized. For example, a single tap gesture may cause playback by theplayback module 115 to stop and/or be paused. Further, althoughFIGS. 5-8 depictclient devices 103 that are mobile devices, it is understood that the principles of the present disclosure may be applied to workstations and/or non-mobile computing devices as well. - The flowcharts of
FIGS. 3, 4, and 9 show examples of the functionality and operation of implementations of components described herein. The components described herein can be embodied in hardware, software, or a combination of hardware and software. If embodied in software, each element may represent a module of code or a portion of code that comprises program instructions to implement the specified logical function(s). The program instructions may be embodied in the form of, for example, source code that comprises human-readable statements written in a programming language and/or machine code that comprises machine instructions recognizable by a suitable execution system, such as a processor in a computer system or other system. If embodied in hardware, each element may represent a circuit or a number of interconnected circuits that implement the specified logical function(s). - Although the flowcharts show a specific order of execution, it is understood that the order of execution may differ from that which is shown. For example, the order of execution of two or more elements may be switched relative to the order shown. Also, two or more elements shown in succession may be executed concurrently or with partial concurrence. Further, in some embodiments, one or more of the elements shown in the flowcharts may be skipped or omitted. In addition, any number of counters, state variables, warning semaphores, or messages might be added to the logical flow described herein, for purposes of enhanced utility, accounting, performance measurement, troubleshooting aid, etc. It is understood that all such variations are within the scope of the present disclosure.
- The
computing environment 203,client device 103, and/or other components described herein may each include at least one processing circuit. Such a processing circuit may comprise, for example, one or more processors and one or more storage devices that are coupled to a local interface. The local interface may comprise, for example, a data bus with an accompanying address/control bus or any other suitable bus structure. - The one or more storage devices for a processing circuit may store data and/or components that are executable by the one or processors of the processing circuit. For example, the
playback module 115, thestreaming module 118, thedecryption module 121, and/or other components may be stored in one or more storage devices and be executable by one or more processors. Also, a data store, such as thesecure data store 112, may be stored in the one or more storage devices. - The
playback module 115, thestreaming module 118, thedecryption module 121, and other components described herein may be embodied in the form of hardware, as software components that are executable by hardware, or as a combination of software and hardware. If embodied as hardware, the components described herein can be implemented as a circuit or state machine that employs any suitable hardware technology. Such hardware technology may include, for example but is not limited to, one or more microprocessors, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits (ASICs) having appropriate logic gates, programmable logic devices (e.g., field-programmable gate array (FPGAs) and complex programmable logic devices (CPLDs)), etc. - Also, one or more or more of the components described herein that comprises software or program instructions can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, for example, a processor in a computer system or other system. Such a computer-readable medium may contain, store, and/or maintain the software or program instructions for use by or in connection with the instruction execution system.
- The computer-readable medium can comprise a physical media, such as, magnetic, optical, semiconductor, and/or other suitable media. Examples of a suitable computer-readable media include, but are not limited to, solid-state drives, magnetic drives, flash memory, etc. Further, any logic or component described herein may be implemented and structured in a variety of ways. For example, one or more components described may be implemented as modules or components of a single application. Further, one or more components described herein may be executed in one computing device or by using multiple computing devices. Additionally, it is understood that terms such as “application,” “service,” “system,” “engine,” “module,” and so on, may be interchangeable and are not intended to be limiting unless indicated otherwise.
- Various embodiments of the present disclosure may be described by at least the following clauses:
- 1. A non-transitory computer-readable medium embodying at least one program executable in at least one computing device, comprising: a decryption module; a streaming module; a playback module configured to at least request media data from the streaming module and render the media data using at least one output device of the at least one computing device; the streaming module being configured to at least obtain the media data from the decryption module by a request specifying a size of the media data, the size being dynamically determined based at least in part on an amount of available temporary data storage; and the decryption module being configured to decrypt a portion of an encrypted media file based at least in part on the specified size to produce the media data.
- 2. The non-transitory computer-readable medium of clause 1, wherein the decryption module is further configured to at least place the media data in a temporary data storage once it is decrypted, the streaming module is further configured to at least obtain the media data from the decryption module by way of the temporary data storage, and the decryption module is further configured to at least cause the media data to be overwritten or erased from the temporary data storage once the media data has been obtained by the streaming module.
- 3. The non-transitory computer-readable medium of clause 1, wherein the media data comprises at least one of: video data, audio data, document data or slide show data.
- 4. The non-transitory computer-readable medium of clause 1, wherein the streaming module is configured to transfer the media data to the playback module via a streaming protocol.
- 5. The non-transitory computer-readable medium of clause 1, wherein the playback module is configured to request the media data beginning at a specified offset.
- 6. The non-transitory computer-readable medium of clause 1, wherein the playback module is configured to continue requesting the media data from the streaming module until an end of the encrypted media file is reached.
- 7. A client device configured to at least: identify, by a playback module, a media item; request, by the playback module, a first portion of the media item from a streaming module; obtain, by the streaming module, the first portion of the media item from a decryption module; decrypt, by the decryption module, the first portion of the media item from an encrypted media file; deliver, by the decryption module, the first portion of the media item to the streaming module; and deliver, by the streaming module, the first portion of the media item to the playback module.
- 8. The client device of clause 7, being further configured to at least: determine an amount of available temporary data storage of the client device; and determine a size of the first portion of the media item by dividing the amount of available temporary data storage by a constant factor.
- 9. The client device of clause 7, being further configured to at least: obtain, by the playback module, a user selection of the media item from a listing of a plurality of media items.
- 10. The client device of clause 7, being further configured to at least: render, by the playback module, the first portion of the media item using at least one of: a display device of the client device or a sound device of the client device.
- 11. The client device of clause 7, wherein the playback module is configured to request the first portion of the media item at a starting offset.
- 12. A method, comprising: decrypting, by a decryption service of at least one computing device, an encrypted media file to generate decrypted media data; supplying, by the decryption service of the at least one computing device, a portion of the decrypted media data to a streaming service of the at least one computing device in response to a first request, wherein the first request is made by the streaming service; and sending, by the streaming service of the at least one computing device, the portion of the decrypted media data to a playback service of the at least one computing device in response to a second request, wherein the second request is made by the playback service.
- 13. The method of clause 12, further comprising rendering, by the playback service of the at least one computing device, the portion of the decrypted media data using at least one output device of the at least one computing device.
- 14. The method of clause 12, further comprising generating, by the streaming service of the at least one computing device, the first request, the first request specifying an offset in the decrypted media data.
- 15. The method of clause 12, further comprising generating, by the playback service of the at least one computing device, the second request, the second request specifying an offset in the decrypted media data.
- 16. The method of clause 12, wherein the playback service, the streaming service, and the decryption service are executed in a single computing device.
- 17. The method of clause 12, wherein the playback service and the streaming service are executed in separate computing devices.
- 18. The method of clause 12, wherein the streaming service comprises a hypertext transfer protocol (HTTP) server, and the streaming service sends the portion of the decrypted media data to the playback service via HTTP.
- 19. The method of clause 12, wherein the streaming service sends the portion of the decrypted media data to the playback service via an encrypted channel.
- 20. The method of clause 12, further comprising: determining, by the at least one computing device, an amount of available temporary data storage in the at least one computing device; and determining, by the at least one computing device, a size of the portion of the decrypted media data based at least in part on the amount of available temporary data storage.
- 21. A non-transitory computer-readable medium embodying a service executable in a mobile device, comprising: code that identifies a media item; code that obtains data corresponding to the media item; code that performs a playback of the media item using at least one output device of the mobile device code that renders a first user interface corresponding to the playback of the media item upon a display of the mobile device, the first user interface being rendered in a first region of the display such that a second user interface corresponding to another application is visible in a second region of the display, the first user interface being of a system alert type; code that facilitates a movement of the first user interface on the display in response to a first user gesture; and code that facilitates a resizing of the first user interface on the display in response to a second user gesture.
- 22. The non-transitory computer-readable medium of clause 21, wherein the first user interface is on top of the second user interface such that the first user interface obscures a portion of the second user interface.
- 23. The non-transitory computer-readable medium of clause 22, wherein the first user interface is configured to remain on top of the second user interface during a user interaction involving the second user interface.
- 24. The non-transitory computer-readable medium of clause 21, wherein the mobile device executes a non-windowed operating system.
- 25. The non-transitory computer-readable medium of clause 21, wherein the playback of the media item is not stopped by the movement or the resizing.
- 26. The non-transitory computer-readable medium of clause 21, wherein the media item comprises a video.
- 27. A client device configured to at least: render a first user interface of a media player in a first region upon a display of the client device, the client device having a non-windowed operating system, the first user interface being of a system alert type; render a second user interface of another application in a second region upon the display, the first user interface partially overlapping the second user interface such that a first portion of the second user interface is obscured by the first user interface and a second portion of the second user interface is visible; receive a user gesture; and apply a transformation to the first user interface in response to the user gesture.
- 28. The client device of clause 27, wherein the first user interface is rendered by a service executed in the client device.
- 29. The client device of clause 28, wherein the non-windowed operating system is an Android operating system, and the service implements a Frame Layout class.
- 30. The client device of clause 27, wherein the transformation comprises at least one of: a movement of the first user interface or a resizing of the first user interface.
- 31. The client device of clause 27, wherein the user gesture is a drag gesture, and the client device is configured to at least move the first user interface in response to the drag gesture.
- 32. The client device of clause 27, wherein the user gesture is a pinch or zoom gesture, and the client device is configured to at least resize the first user interface in response to the pinch or zoom gesture.
- 33. The client device of clause 27, wherein the client device is configured to at least render a video playback of a media item in the first user interface.
- 34. The client device of clause 27, wherein the client device is configured to at least render the first user interface on top of the second user interface upon the display during a user interaction involving the second user interface.
- 35. The client device of clause 27, wherein the client device is configured to at least render a seek control for a media item in the first user interface.
- 36. The client device of clause 27, wherein the client device is configured to at least pause a playback of a media item by the media player in response to receiving a single tap gesture above the first user interface.
- 37. A method, comprising: rendering, by a client device having a non-windowed operating system, a first user interface upon a display, the first user interface corresponding to a media player; commencing, by the client device, a playback of a media item in the first user interface; receiving, by the client device, a first user gesture; resizing, by the client device, the first user interface to expose a portion of a second user interface upon the display below the first user interface in response to the first user gesture, the second user interface corresponding to another application; receiving, by the client device, a second user gesture; and moving, by the client device, the first user interface so that a different portion of the second user interface is rendered upon the display in response to the second user gesture.
- 38. The method of clause 37, wherein the first user interface is rendered in a full-screen mode before the first user gesture is received, and the second user interface is rendered in the full-screen mode under the first user interface.
- 39. The method of clause 37, further comprising continuing, by the client device, the playback of the media item while the portion or the different portion of the second user interface is rendered upon the display.
- 40. The method of clause 37, further comprising: receiving, by the client device, a third user gesture over the second user interface during the playback of the media item; and providing, by the client device, user input corresponding to the third user gesture to the other application.
- It is emphasized that the above-described embodiments of the present disclosure are merely examples of implementations to set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiments without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure.
Claims (20)
1. A non-transitory computer-readable medium embodying a service executable in a mobile device, comprising:
code that identifies a media item;
code that obtains data corresponding to the media item;
code that performs a playback of the media item using at least one output device of the mobile device;
code that renders a first user interface corresponding to the playback of the media item upon a display of the mobile device, the first user interface being rendered in a first region of the display such that a second user interface corresponding to another application is visible in a second region of the display, the first user interface being of a system alert type;
code that facilitates a movement of the first user interface on the display in response to a first user gesture; and
code that facilitates a resizing of the first user interface on the display in response to a second user gesture.
2. The non-transitory computer-readable medium of claim 1 , wherein the first user interface is on top of the second user interface such that the first user interface obscures a portion of the second user interface.
3. The non-transitory computer-readable medium of claim 2 , wherein the first user interface is configured to remain on top of the second user interface during a user interaction involving the second user interface.
4. The non-transitory computer-readable medium of claim 1 , wherein the mobile device executes a non-windowed operating system.
5. The non-transitory computer-readable medium of claim 1 , wherein the playback of the media item is not stopped by the movement or the resizing.
6. The non-transitory computer-readable medium of claim 1 , wherein the media item comprises a video.
7. A client device configured to at least:
render a first user interface of a media player in a first region upon a display of the client device, the client device having a non-windowed operating system, the first user interface being of a system alert type;
render a second user interface of another application in a second region upon the display, the first user interface partially overlapping the second user interface such that a first portion of the second user interface is obscured by the first user interface and a second portion of the second user interface is visible;
receive a user gesture; and
apply a transformation to the first user interface in response to the user gesture.
8. The client device of claim 7 , wherein the first user interface is rendered by a service executed in the client device.
9. The client device of claim 8 , wherein the non-windowed operating system is an Android operating system, and the service implements a Frame Layout class.
10. The client device of claim 7 , wherein the transformation comprises at least one of: a movement of the first user interface or a resizing of the first user interface.
11. The client device of claim 7 , wherein the user gesture is a drag gesture, and the client device is configured to at least move the first user interface in response to the drag gesture.
12. The client device of claim 7 , wherein the user gesture is a pinch or zoom gesture, and the client device is configured to at least resize the first user interface in response to the pinch or zoom gesture.
13. The client device of claim 7 , wherein the client device is configured to at least render a video playback of a media item in the first user interface.
14. The client device of claim 7 , wherein the client device is configured to at least render the first user interface on top of the second user interface upon the display during a user interaction involving the second user interface.
15. The client device of claim 7 , wherein the client device is configured to at least render a seek control for a media item in the first user interface.
16. The client device of claim 7 , wherein the client device is configured to at least pause a playback of a media item by the media player in response to receiving a single tap gesture above the first user interface.
17. A method, comprising:
rendering, by a client device having a non-windowed operating system, a first user interface upon a display, the first user interface corresponding to a media player;
commencing, by the client device, a playback of a media item in the first user interface;
receiving, by the client device, a first user gesture;
resizing, by the client device, the first user interface to expose a portion of a second user interface upon the display below the first user interface in response to the first user gesture, the second user interface corresponding to another application;
receiving, by the client device, a second user gesture; and
moving, by the client device, the first user interface so that a different portion of the second user interface is rendered upon the display in response to the second user gesture.
18. The method of claim 17 , wherein the first user interface is rendered in a full-screen mode before the first user gesture is received, and the second user interface is rendered in the full-screen mode under the first user interface.
19. The method of claim 17 , further comprising continuing, by the client device, the playback of the media item while the portion or the different portion of the second user interface is rendered upon the display.
20. The method of claim 17 , further comprising:
receiving, by the client device, a third user gesture over the second user interface during the playback of the media item; and
providing, by the client device, user input corresponding to the third user gesture to the other application.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/140,829 US20210124486A1 (en) | 2014-12-30 | 2021-01-04 | Security framework for media playback |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN6747/CHE/2014 | 2014-12-30 | ||
IN6747CH2014 | 2014-12-30 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/140,829 Continuation US20210124486A1 (en) | 2014-12-30 | 2021-01-04 | Security framework for media playback |
Publications (1)
Publication Number | Publication Date |
---|---|
US20160188196A1 true US20160188196A1 (en) | 2016-06-30 |
Family
ID=56164186
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/691,598 Abandoned US20160188196A1 (en) | 2014-12-30 | 2015-04-21 | Floating media player |
US17/140,829 Pending US20210124486A1 (en) | 2014-12-30 | 2021-01-04 | Security framework for media playback |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/140,829 Pending US20210124486A1 (en) | 2014-12-30 | 2021-01-04 | Security framework for media playback |
Country Status (1)
Country | Link |
---|---|
US (2) | US20160188196A1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678827A (en) * | 2017-10-19 | 2018-02-09 | 广东欧珀移动通信有限公司 | Display methods, device, terminal and the storage medium of video player |
CN110045895A (en) * | 2018-12-13 | 2019-07-23 | 杭州网易云音乐科技有限公司 | Information processing method, system, medium and calculating equipment |
CN110244900A (en) * | 2019-05-23 | 2019-09-17 | 浙江大华技术股份有限公司 | The adjusting method and terminal device of display interface, computer storage medium |
US10528239B2 (en) * | 2015-05-15 | 2020-01-07 | Boe Technology Group Co., Ltd. | Display processing method, display processing apparatus and electronic device |
USD926807S1 (en) * | 2015-04-13 | 2021-08-03 | Apple Inc. | Display screen or portion thereof with graphical user interface |
EP3951589A4 (en) * | 2019-06-28 | 2022-08-17 | Huawei Technologies Co., Ltd. | View display method and electronic device |
US20220318036A1 (en) * | 2019-12-25 | 2022-10-06 | Huawei Technologies Co., Ltd. | Screen Display Method and Electronic Device |
US20230214237A1 (en) * | 2021-03-26 | 2023-07-06 | Beijing Bytedance Network Technology Co., Ltd. | Method and apparatus for processing listening resuming of music application, and device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130326583A1 (en) * | 2010-07-02 | 2013-12-05 | Vodafone Ip Lecensing Limited | Mobile computing device |
US20150046812A1 (en) * | 2013-08-12 | 2015-02-12 | Google Inc. | Dynamic resizable media item player |
US20160004388A1 (en) * | 2013-02-18 | 2016-01-07 | Lg Electronics Inc. | Operation method of portable terminal |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5504816A (en) * | 1994-02-02 | 1996-04-02 | Gi Corporation | Method and apparatus for controlling access to digital signals |
US6415373B1 (en) * | 1997-12-24 | 2002-07-02 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
US7143433B1 (en) * | 2000-12-27 | 2006-11-28 | Infovalve Computing Inc. | Video distribution system using dynamic segmenting of video data files |
US7039784B1 (en) * | 2001-12-20 | 2006-05-02 | Info Value Computing Inc. | Video distribution system using dynamic disk load balancing with variable sub-segmenting |
US20050169473A1 (en) * | 2004-02-03 | 2005-08-04 | Candelore Brant L. | Multiple selective encryption with DRM |
US7840489B2 (en) * | 2005-07-01 | 2010-11-23 | Sony Corporation | Key sharing for DRM interoperability |
KR101138395B1 (en) * | 2006-09-22 | 2012-04-27 | 삼성전자주식회사 | Method and apparatus for sharing access right of content |
US8155583B2 (en) * | 2006-10-31 | 2012-04-10 | At&T Intellectual Property Ii, L.P. | Method and apparatus for providing broadband signals to a portable user device |
US8532293B2 (en) * | 2007-09-27 | 2013-09-10 | The Directv Group, Inc. | Method and system for securely providing and storing content in a multiple dwelling unit system |
US20090086969A1 (en) * | 2007-09-27 | 2009-04-02 | Klauss Peter M | Method and system for providing content to a content distribution system suitable for a multiple dwelling unit using an encryption |
US9807468B2 (en) * | 2009-06-16 | 2017-10-31 | Microsoft Technology Licensing, Llc | Byte range caching |
WO2014008200A1 (en) * | 2012-07-05 | 2014-01-09 | Motorola Mobility Llc | Methods and devices for bandwidth allocation in adaptive bitrate streaming |
US20140037090A1 (en) * | 2012-08-06 | 2014-02-06 | Media Speed Tech Llc, A Delaware Limited Liability Company | System and method of digital rights management |
-
2015
- 2015-04-21 US US14/691,598 patent/US20160188196A1/en not_active Abandoned
-
2021
- 2021-01-04 US US17/140,829 patent/US20210124486A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130326583A1 (en) * | 2010-07-02 | 2013-12-05 | Vodafone Ip Lecensing Limited | Mobile computing device |
US20160004388A1 (en) * | 2013-02-18 | 2016-01-07 | Lg Electronics Inc. | Operation method of portable terminal |
US20150046812A1 (en) * | 2013-08-12 | 2015-02-12 | Google Inc. | Dynamic resizable media item player |
Non-Patent Citations (2)
Title |
---|
Sheran Gunasekera, Android Apps Security, September 12, 2012 , Apres, pages 1-6 * |
Wallace Jackson, Android Apps for Absolute Beginners, August 16, 2014, Apress, pages 1-3 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USD926807S1 (en) * | 2015-04-13 | 2021-08-03 | Apple Inc. | Display screen or portion thereof with graphical user interface |
USD999236S1 (en) | 2015-04-13 | 2023-09-19 | Apple Inc. | Display screen or portion thereof with graphical user interface |
US10528239B2 (en) * | 2015-05-15 | 2020-01-07 | Boe Technology Group Co., Ltd. | Display processing method, display processing apparatus and electronic device |
CN107678827A (en) * | 2017-10-19 | 2018-02-09 | 广东欧珀移动通信有限公司 | Display methods, device, terminal and the storage medium of video player |
CN110045895A (en) * | 2018-12-13 | 2019-07-23 | 杭州网易云音乐科技有限公司 | Information processing method, system, medium and calculating equipment |
CN110244900A (en) * | 2019-05-23 | 2019-09-17 | 浙江大华技术股份有限公司 | The adjusting method and terminal device of display interface, computer storage medium |
EP3951589A4 (en) * | 2019-06-28 | 2022-08-17 | Huawei Technologies Co., Ltd. | View display method and electronic device |
US20220318036A1 (en) * | 2019-12-25 | 2022-10-06 | Huawei Technologies Co., Ltd. | Screen Display Method and Electronic Device |
US20230214237A1 (en) * | 2021-03-26 | 2023-07-06 | Beijing Bytedance Network Technology Co., Ltd. | Method and apparatus for processing listening resuming of music application, and device |
Also Published As
Publication number | Publication date |
---|---|
US20210124486A1 (en) | 2021-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210124486A1 (en) | Security framework for media playback | |
US10298721B2 (en) | Method and system to determine a work distribution model for an application deployed on a cloud | |
US9930014B2 (en) | Methods and apparatus for key delivery in HTTP live streaming | |
US10102648B1 (en) | Browser/web apps access to secure surface | |
US8806193B2 (en) | Methods and apparatus for integrating digital rights management (DRM) systems with native HTTP live streaming | |
KR20150075349A (en) | user terminal apparatus, communication system and control method thereof | |
WO2019184220A1 (en) | Electronic device, conference file sharing method and storage medium | |
WO2019134303A1 (en) | Live stream room popularity processing method and apparatus, server and storage medium | |
US10693631B2 (en) | Modifying a content descriptor to facilitate delivery of token-authorized encrypted data | |
US20160092154A1 (en) | Content mirroring | |
JP6709697B2 (en) | Content streaming service method and system for communication cost reduction | |
US20160182952A1 (en) | Protected Media Decoding System Supporting Metadata | |
US11741930B2 (en) | Systems and methods for streamlining multimedia content acquisition | |
US10102386B2 (en) | Decrypting content protected with initialization vector manipulation | |
US10354690B2 (en) | Method for capturing and recording high-definition video and audio output as broadcast by commercial streaming service providers | |
US20170041375A1 (en) | Generating content fragments for content distribution | |
US9807062B2 (en) | Method and apparatus for selectively providing protection of screen information data | |
US20160291915A1 (en) | Display sharing sessions between devices | |
US9882960B2 (en) | Security framework for media playback | |
US10102395B2 (en) | System and method for creating and transitioning to multiple facets of a social media object in a social network | |
US8832845B2 (en) | Apparatus, method and program | |
KR20160113071A (en) | Method for storing a file by using a plurality of cloud storage and apparatus thereof | |
US10812549B1 (en) | Techniques for secure screen, audio, microphone and camera recording on computer devices and distribution system therefore | |
CN108985109A (en) | A kind of date storage method and device | |
US9537842B2 (en) | Secondary communications channel facilitating document security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: AIRWATCH LLC, GEORGIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PANCHAPAKESAN, RAMANI;KOYA, SIVAJI;BISWAL, ANSHUMAN;REEL/FRAME:035464/0565 Effective date: 20150210 |
|
STCV | Information on status: appeal procedure |
Free format text: EXAMINER'S ANSWER TO APPEAL BRIEF MAILED |
|
STCV | Information on status: appeal procedure |
Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |