Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(115)

Side by Side Diff: chrome/browser/resources/file_manager/js/media/player_testapi.js

Issue 39123003: [Files.app] Split the JavaScript files into subdirectories: common, background, and foreground (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed test failure. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 'use strict';
6
7 /**
8 * Test API for Chrome OS Video Player and Audio Player.
9 *
10 * To test the Video Player open a tab with the URL:
11 * chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj/video_player.html
12 *
13 * To test the Audio Player open a tab with the URL:
14 * chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj/mediaplayer.html
15 *
16 */
17 var playerTestAPI = {
18
19 /* Methods common for audio and video players */
20
21 /**
22 * Respond with the path to the current media source.
23 */
24 getSrc: function() {
25 playerTestAPI.respond_(util.extractFilePath(playerTestAPI.getMedia_().src));
26 },
27
28 /**
29 * Respond with a boolean value, true if the media is playing.
30 */
31 isPlaying: function() {
32 playerTestAPI.respond_(playerTestAPI.getControls_().isPlaying());
33 },
34
35 /**
36 * Play the media.
37 */
38 play: function() {
39 playerTestAPI.getControls_().play();
40 },
41
42 /**
43 * Pause the playback.
44 */
45 pause: function() {
46 playerTestAPI.getControls_().pause();
47 },
48
49 /**
50 * Respond with a number, duration of the media in seconds.
51 */
52 getDuration: function() {
53 playerTestAPI.respond_(playerTestAPI.getMedia_().duration);
54 },
55
56 /**
57 * Respond with a number, current media position in seconds.
58 */
59 getCurrentTime: function() {
60 playerTestAPI.respond_(playerTestAPI.getMedia_().currentTime);
61 },
62
63 /**
64 * Change media position.
65 * @param {number} time Media positions.
66 */
67 seekTo: function(time) {
68 playerTestAPI.getMedia_().currentTime = time;
69 },
70
71 /* Video player-specific methods.
72 *
73 * To test the video player open a tab with the url:
74 * chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj/mediaplayer.html
75 *
76 */
77
78 /**
79 * Load the specified file in the video player,
80 * Starts playing immediately.
81 * @param {string} filePath File path.
82 */
83 loadVideo: function(filePath) {
84 var url = util.makeFilesystemUrl(filePath);
85 location.href = location.origin + location.pathname + '?' + url;
86 reload();
87 },
88
89 /**
90 * Respond with a number, current volume [0..100].
91 */
92 getVolume: function() {
93 playerTestAPI.respond_(playerTestAPI.getMedia_().volume * 100);
94 },
95
96 /**
97 * Change volume.
98 * @param {number} volume Volume [0..100].
99 */
100 setVolume: function(volume) {
101 playerTestAPI.respond_(
102 playerTestAPI.getControls_().onVolumeChange_(volume / 100));
103 },
104
105 /**
106 * Respond with a boolean, true if the volume is muted.
107 */
108 isMuted: function() {
109 playerTestAPI.respond_(playerTestAPI.getMedia_().volume == 0);
110 },
111
112 /**
113 * Mute the volume. No-op if already muted.
114 */
115 mute: function() {
116 if (playerTestAPI.getMedia_().volume != 0)
117 playerTestAPI.getControls_().onSoundButtonClick_();
118 },
119
120 /**
121 * Unmute the volume. No-op if not muted.
122 */
123 unmute: function() {
124 if (playerTestAPI.getMedia_().volume == 0)
125 playerTestAPI.getControls_().onSoundButtonClick_();
126 },
127
128 /* Audio player-specific methods. */
129
130 /**
131 * Load a group of tracks into the audio player.
132 * Starts playing one of the tracks immediately.
133 * @param {Array.<string>} filePaths Array of file paths.
134 * @param {number} firstTrack Number of the file to play first (0-based).
135 */
136 loadAudio: function(filePaths, firstTrack) {
137 AudioPlayer.instance.load({
138 items: filePaths.map(util.makeFilesystemUrl),
139 position: firstTrack
140 });
141 },
142
143 /**
144 * Respond with a current track number,
145 */
146 getTrackNumber: function() {
147 playerTestAPI.respond_(AudioPlayer.instance.currentTrack_);
148 },
149
150 /**
151 * Play the next track.
152 */
153 forward: function() {
154 playerTestAPI.getControls_().onAdvanceClick_(true /* forward */);
155 },
156
157 /**
158 * Go back. Will restart the current track if the current position is > 5 sec
159 * or play the previous track otherwise.
160 */
161 back: function() {
162 playerTestAPI.getControls_().onAdvanceClick_(false /* back */);
163 },
164
165 /* Utility methods */
166
167 /**
168 * @return {AudioControls|VideoControls} Media controls.
169 * @private
170 */
171 getControls_: function() {
172 return window.controls || window.AudioPlayer.instance.audioControls_;
173 },
174
175 /**
176 * @return {HTMLVideoElement|HTMLAudioElement} Media element.
177 * @private
178 */
179 getMedia_: function() {
180 return playerTestAPI.getControls_().getMedia();
181 },
182
183 /**
184 * @param {string|boolean|number} value Value to send back.
185 * @private
186 */
187 respond_: function(value) {
188 if (window.domAutomationController)
189 window.domAutomationController.send(value);
190 else
191 console.log('playerTestAPI response: ' + value);
192 }
193 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698