Smart Player
Smart Player
SMART PLAYER
Submitted By
Gwahr Salh A Al Grny, 431812616 Nouf Saeed A Alqhtani, 431812785 Nashta Saeed A Alasmari, 431813043 Arwa Abdllah A Al Asira, 431813748
2013
Supervised By Mrs. Vasanthi Muniasamy M.Sc., M.Phil Lecturer, Department of Information Systems
KING KHALID UNIVERSITY COMMUNITY COLLEGE FOR GIRLS KHAMIS MUSHYAT, KSA
SMART PLAYER
By Gwahr Salh A Al Grny, 431812616 Nouf Saeed A Alqhtani, 431812785 Nashta Saeed A Alasmari, 431813043 Arwa Abdllah A Al Asira, 431813748
Supervised by: Mrs. Vasanthi Muniasamy M.Sc., M.Phil Lecturer, Department of Information Systems
This Project Documentation is submitted in partial fulfillment for the requirement for the Diploma of Information Systems May - 2013 Jumada II - 1434
ACKNOWLEDGMENT
We are the student of DEPARTMENT OF INFORMATION SYSTEMS, COMMUNITY COLLEGE FOR GIRLS, feel glad and believe that we are very lucky for getting opportunity to develop a project in the form of subject 3-305. It gives us a great pleasure to express our sincere gratitude to Dr. DALAL AZAM, Dean, Community College for girls, Khamis Mushyat. We express our heartfelt thanks to Dr. ENTISSAR MAGBOUL EL-GAILANI, Coordinator, Department of Information Systems. We express our heartfelt thanks to Mrs. VASANTHI MUNIASAMY M.Sc., M.Phil, Lecturer, Department of Information Systems, for her great response and be politely the problem solution, encouragement, constructive criticism and her kind help to complete our project very easily and successfully. We thank all our teaching and non teaching staff members who helped us throughout the levels for completing this diploma course successfully. We thank the persons who are helping for us to make the hardcopy of this project.
TABLE OF CONTENTS
S.No 1 2 3 4 Synopsis Objective of the Study Project Description System Analysis 4.1 Existing and Proposed System 4.2 Feasibility Study 4.2.1 Technical Feasibility 4.2.2 Economical Feasibility 4.2.3 Operational Feasibility 4.3 Requirement Specification 4.3.1 Hardware Tool Specification 4.3.2 Software Tool Specification 4.3.2.1 Visual Basic 6.0 4.3.2.2 Application Programming Interface (API) 4.4 Advantage of the Project 5 System Design 5.1 Introduction 5.2 Applicable Documents 5.3 Structure of Software Package 5.4 Functional Decomposition Diagram 5.4.1 General Context Level Diagram 5.4.2 Context Level Diagram 19 23 7 - 18 Description Page No 1 2 3-6
System Testing 6.1 Objective of Testing 6.2 Unit Testing 6.3 Integration Testing 6.4 Output Testing 24
System Implementation 7.1 API Designer Method 7.2 Coding 7.3 Output Screen Shots 25 - 96
8 9
Conclusion References
97 98
SYNOPSIS
Music as a universal language, the language of love or at least of body and feelings rather than of the mind, as an art which transcends the sordid social realities of everyday life these are some of the most commonly heard notions about the nature of music in the culture we belong to. Music gives a soul to the universe, wings to the mind, flight to the imagination and life to everything. Without music, life would not be a fulfilled. So that we plan to design our own Powerful and friendly Player titled SMART PLAYER. Like the name, our player is looking and functioning very smart and good. Our Smart Player can play music files, and provides simple playback control, such as pausing, stopping, and resuming the music, mute the sound, easily make adjustments to the music volume, tempo and it permits you to change the Players Skin in different models and it displays pictures while the music plays, amazing Magical Fire Effects with Back ground funny music to attract the viewers / Listeners and very nice attractive screen with cute pictures from beginning to end and You can watch movies also. Smart Player is a Windows Operating System based Player that plays audio files. It deals with many types of shortcomings like WMP, MP3, WMA, WMV, AU, WAV and MP4 formats. It has a nice looking Application Programming Interface that makes the program fast and easy to work with our player. This project is a good option for those who want to enjoy their music in the best way. If you want to use our Smart Player, find the CD at the back and install it and enjoy the world of Musi..c with us
PROJECT DESCRIPTION
In the Smart Player we have the following modules 1. Opening Screen Module 2. Listening Music Module 3. Watching Movie Module I. Opening Screen: In the opening Screen Module we use the API Concepts for displaying our Player Name in different fire effect schemes like a. Fire Inside Text b. Beauty of Fire in Text c. Fire by Mistake d. Fire on Top of the Text e. Burning the Text We calculate the pixel position along with API properties. We calculate the pictures new CURRENTX and CURRENTY Values continuously and refresh the pixel position every time and remove the old values from the memory. Used API Type - Declare 1. GetObject 2. GetDIBits 3. SetDIBits
4. StretchDIBits 5. CopyMemory 6. GetPixel 7. SetPixelV
Used API Type Types 1. BITMAP 2. RGBQUAD 3. BITMAPINFOHEADER 4. BITMAPINFO We are not using the API Type Constants in our Project. In the coding area we give the full statement of the above API types. From this screen the user can chose either music module or movie module. II. Listening Music: In this module, the user can choose the music files of any music format to listen the music with wonderful background of snow falling and flashing lights and also we give the provision for choosing the skin for the player and inner pictures. Once the user clicks the directory control, it loads only the files which have the acceptable music formats into the file control. For flash lighting we use Web Browser Control. Here we have the Buttons like Open, Pause / Play, Stop, Skin, About Us, Exit. Scroll bars are used to increase the volume and tempo. Snow Falling: We use the timer control to display the snow falling from the upper left corner of the player screen. We use the mathematical concepts to calculate the X and Y positions for drawing the circle and the radius we choose is 15 because the size of the circle should be small then only we can get the snow effect and the color we choose is QBCOLOR(15). The calculation is given below. For var = 0 To 150 s = Int(Rnd * 50) x(var) = Val(x(var) + s) r = Int(Rnd * 50) y(var) = Val(y(var) + r) If x(var) > Player.ScaleHeight Then x(var) = -1 End If
4
If y(var) > Player.ScaleWidth Then y(var) = -1 End If Player.Circle (x(var), y(var)), 15, QBColor(15) Next Open Button: Once this button is clicked by the end user, it will show the Drive control and load all the available drives in the users system. He may choose any one drive which contains the music files. After choosing the drive, one directory list box is visible to the user to select the specific directory. Here we use the Filter property to filter the particular music formats files only. These files are displayed in the File List Box. Once the user select the particular file all controls like Drive, Dir and File are invisible from the users eye. Play Button: Press the play button to listen to the audio. Pause Button: Pause Button will pause during playback. Press again to unpause / Play. Playback begins at the current cursor position. Stop Button: Press the stop button to stop playback immediately. Playback begins from the initial position. Skin Button: Skin is nothing but the frame for the player. If the user press the Skin Button one list box containing lot of skin models is visible to the user and then the user may choose any one from the list and after that pressing the close button will hide the list box from the users view. About us Button: This button shows one tiny screen in the main window to display the project name, the software we used and name of us and our supervisor in scrolling mode. If the end user is interested with this project they may send the mail to us thru the mail id which is displayed above the tiny screen.
Exit Button: This will close the current player screen and open the Main Screen. III. Watching Movie: In this module, the user can choose the movie files of any movie format to watch the movie. Open Button: Once this button is clicked by the end user, it will show the Drive control and load all the available drives in the users system. He may choose any one drive which contains the music files. After choosing the drive, one directory list box is visible to the user to select the specific directory. Here we use the Filter property to filter the particular music formats files only. These files are displayed in the File List Box. Once the user select the particular file all controls like Drive, Dir and File are invisible from the users eye. Play Button: Press the play button to watch to the movie. Pause Button: Pause Button will pause during playback. Press again to unpause / Play. Playback begins at the current cursor position Stop Button: Press the stop button to stop playback immediately. Playback begins from the initial position.
SYSTEM ANALYSIS
The software should make the whole environment user friendly so we choose VISUAL BASIC 6.0 will be best suited for our designing. SYSTEM ANALYSIS Systems analysis is the dissection of a system into its component pieces to study how those Component pieces interact and work. Systems analysis is (1) The survey and planning of the system and project, (2) The study and analysis of the existing business and information system, and (3) The definition of business requirements and priorities for a new or improved system. A popular synonym is logical design. SDLC MODEL USED AGILE Agile development model is also a type of Incremental model. Software is developed in incremental, rapid cycles. This results in small incremental releases with each release building on previous functionality. Each release is thoroughly tested to ensure software quality is maintained. It is used for time critical applications. When to use Agile model: 1. When new changes are needed to be implemented. The freedom agile gives to change is very important. New changes can be implemented at very little cost because of the frequency of new increments that are produced. 2. To implement a new feature the developers need to lose only the work of a few days, or even only hours, to roll back and implement it. 3. Unlike the waterfall model in agile model very limited planning is required to get started with the project. Agile assumes that the end users needs are ever changing in a dynamic business and IT world. Changes can be discussed and features can be newly affected or removed based on feedback. This effectively gives the customer the finished system they want or need. 4. Both system developers and stakeholders alike, find they also get more freedom of time and options than if the software was developed in a more rigid sequential way. Having options gives them the ability to leave important decisions until more or better
data or even entire hosting programs are available; meaning the project can continue to move forward without fear of reaching a sudden standstill. Advantages of Agile model: i Customer satisfaction by rapid, continuous delivery of useful software. i People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other. i Working software is delivered frequently (weeks rather than months). i Face-to-face conversation is the best form of communication. i Close daily cooperation between business people and developers. i Continuous attention to technical excellence and good design. i Regular adaptation to changing circumstances. i Even late changes in requirements are welcomed
FEASIABILITY STUDY
A feasibility study is a test of system proposal according to its work ability impact on the organization, ability to meet user needs, and effective use of resources. The objective of the feasibility study is not to solve the problem but to acquire a sense of its scope. During the study, the problem definition is crystallized and aspects of the problem to be included in the system are determined. Consequently cost and benefits are estimated with greater accuracy of this stage. The outcome of the initial investigation is to be determining whether in alternative system is feasible.
TECHNICAL FEASIBILITY
Technical feasibility around the existing computer system (hardware, software, etc) and what extend it can support the proposed addition. For example if the current computer is opening at 80% capacity- an arbitrary ceiling then running another application could overload the system are require additional hardware.
ECONOMICAL FEASIBILITY
Economics analysis is the most frequently for evaluating the effectiveness of a system. Most commonly known as cost/benefit analysis, the candidate procedure is
determined benefits and savings. . This is an ongoing report that improves in accuracy at each phase of the system life cycle. If the system is economically feasible then many people can use and stand in market in long time.
OPERATIONAL FEASIBILITY
Operational feasibility depends on the system technical feasibility, which methods we use for developing the system and what technique we use for developing the system. If the system is operationally feasible then it is a reliable system and giving the correct result. When client is working with this software system then all forms and fields are described and its database is connect in appropriate manner.
10
REQUIREMENT SPECIFICATION
HARDWARE TOOLS SPECIFICATION
Minimum Hardware Configuration of Windows Clients is appended below Operating Systems : Microprocessor Ram Hard Disk CD ROM Drive : : : : Microsoft Windows XP, Windows MCE, Windows Vista Pentium Processor, 450 megahertz (MHz) 128 MB of RAM 2.5 gigabytes (GB) 52 X CD ROM Drive
11
TOOL DESCRIPTION
MICROSOFT VISUAL BASIC 6.0
Microsoft Visual Basic 6.0 is one of the front-end tool provided by Microsoft Inc. Microsoft Visual Basic 6.0 provides a fast way to develop applications for Microsoft Windows. As a front-end tool Microsoft Visual Basic 6.0 provides the G.U.I interface to the user and it is supposed to be one of the best front-end tools used today. To develop any system along with the back-end tools which provide access to the database to make a system interactive with the user the use of front-end tools comes into the picture. The front-end tools make the user interface with the system easier and also provide a user-friendly environment to the system. This rich language enables you to develop many different types of applications. You can create you can create programs that intersect with the hardware. It is a programming language used to create window base application. Visual Basic is an old BASIC (Beginners All-purpose Symbolic instruction code) language. It makes it very easy to get the user interface portion of your application up and running. Hundreds of functions and latest technological advances have been added to the language to make it an industrial strength development environment suitable for almost my type of windows application. This is especially true with the advent of internet programming and object oriented programming.
Visual Basic allows you to adopt more of parallel approach, with independent sections of code for each option that the user may select. This is known as Event driven programming language. Data report design and Data form wizards. The language is very easy and it provides a very user friendly environment while programming in Visual Basic 6.0. Allows for rapid application development and is excellent for business applications. Can integrate with the Internet on both the server side and the client side.
MODULES
A module is used to store all our functions and public routines separately. Apart from it keeping our code editors window clean, it removes the need for repetitive typing. Variables and functions that are used throughout the program and on different forms can be stored in modules so that not to rewrite again each time the variables and functions when we need them in a form. Modules are a way to declare objects at one place and access them globally. Code in visual basic is stored in the form of modules. The three kinds of modules are 1. Form module 2. Standard module 3. Class modules A simple application may contain a single form and the code resides in that Form module itself. As the application grows, additional Forms are added and there may be a common code is executed in several Forms. To avoid the duplication of code, a separate module containing a procedure is created that implements the common code. This is a standard module. Class module is a foundation of the object oriented programming in visual basic. New objects can be created by writing code in class modules. Each module can contain variable declaration or procedures.
Visual Basic is very useful in designing and developing, effective and efficient
windows based programs. During design time, it is possible to see how the program will look at the runtime. VB helps in making your program look quite effective and beautiful.
13
You can add menus, tool bars, status bars, text boxes, etc. to blank window. It is less time consuming and more user friendly. Also user friendly programs can be developed very easily.
14
API calls can be used to perform almost any Windows task, from shutting down a computer to installing a printer. Because of the multi-threaded mature of the Windows operating system, several programs can access the Windows API simultaneously. Windows API functions are very fast and powerful, but actually calling them up and executing it can be time consuming.
Accessing the Windows API in Visual Basic - Exploring the API function list There are literally thousands of API functions available throughout the numerous Windows API DLL libraries. Almost everything that Windows can do is listed as an API function. To view the available list of Windows API's, we can use the API viewer, which is installed along with Visual Basic. To start the API viewer, click Start -> Programs -> Microsoft Visual Studio 6 -> Microsoft Visual Studio 6 Tools -> API Text Viewer. You should be presented with a screen like the one shown below: To get started, you'll need to load up the file that contains the list of API's. Start by clicking File, then Load Text File. Find the file named Win32api.txt and load it up. If a box appears asking you if you want to change this file from text to database, accept it. This will make your viewing much faster. Starting from the top of the window and working down, you can see a drop-down menu. This is for changing the API type. Make sure that this is set to 'Declares', because we will need it for the next section.
16
Below the menu is a large list box. This list box displays all of the available items for the API Type that you have selected. When you have found the item that you want to learn more about, click on the 'Add' button and the command will appear in the box directly below. When you have one or more items in this box, the two buttons labeled 'Remove' and 'Copy' will be enabled. The 'Remove' button deletes selected items that you do not require, and the 'Copy' button copies the whole lot onto the Windows clipboard. We now have access to the source code that will call up the API function. As you can see, this API is located within the Kernal32.DLL file. With the source code copied to the Windows clipboard, returns to Visual Basic and pastes it in as part of the source code for the Module. It should be pasted at the top, before anything else. When your program is interpreted and executed, your application will now make a request directly to an API call. Our single API declaration is useless at the moment, however. We need to call the API function from within our program. That's what we will do right now.
17
ADVANTAGE OF SYSTEM
1. Easy Use 2. Amazing Screen Effects 3. Fine Quality 4. Supports all Music Type Formats 5. Very Pleasant for your Eyes
18
SYSTEM DESIGN
Introduction
The goal of this phase is to develop internal logic of each of the modules. In the system design, the focus is an identifying the modules, whereas during the detailed design the focus is on designing the logic for the modules. In other words in system design attention is on what components are needed The design process for software system has two events. At the first level focus is on deciding which modules are needed for the system, the specification of these modules and the next level focuses how the modules should be interconnected. This is called system design or top level design. In the specification of the module can be satisfied is decided. This design level is often called detailed design or logic design.
Applicable documents
The system design refers the system documents hence the first application documents here is data structure. Hence second application document here is system design
Functional component 1: Welcome Screen. Functional component 2: Player Screen Functional component 3: Movie Screen
19
20
SMART PLAYER
APPLICATION PROGRAMING INTERFACE SCREEN
FIRE BY MISTAKE
PLAY / PAUSE
STOP
EXIT
OPEN
PLAY / PAUSE
STOP
SKINS
ABOUT US
EXIT
21
SOURCE
DATA1
PROCESS
DATA2
DESTINATION
Our Smart Player System consists of the following activities: 1) Obtain files from outside the system, 2) Process the file to check whether it is a correct file format (Audio and Video) or not 3) If it is so, play the corresponding file
22
23
SYSTEM TESTING
Testing Objective
Testing is a process of executing a program with intention of finding an error. A good test case is one that has a high probability of finding an as-get undiscovered error. A successful test is that in which no error are found. The objective is to design tests that systematically uncover different classes of error and do with a minimum amount of time and effort. Testing is vital to the success of the system. System testing makes a logical assumption that if all parts of the system are correct, the goal will be successfully achieved. In the project system testing is made as follows: The procedure level testing is made first. By giving improper inputs, the errors occurred are noted and eliminated. Here we implement the tested error-free system into real-life environment and make necessary changes, which runs in an online fashion.
Unit Testing
Unit testing verification efforts on the smallest unit of software design, module. This is known as Module Testing. The modules are tested separately. This testing is carried out during programming stage itself. In these testing steps, each module is found to be working satisfactorily as regard to the expected output from the module.
Integration Testing
Integration testing is a systematic technique for constructing tests to uncover error associated within the interface. In the project, all the modules are combined and then the entire program is tested as a whole. In the integration-testing step, all the error uncovered is corrected for the next testing steps.
Output Testing
The output generated or displayed by the system, under consideration is tested asking the users about the format required by them. Here, the output is considered into two ways: one is on the screen and other is the format. The output format on the screen is found to be correct as the format design according to the user needs. For the hard copy also, the output comes out as specified by the user. Hence the output testing didnt result in any correction in the system
24
25
26
27
28
29
30
31
32
Picture1.Print "SMART" Dim x As Integer, y As Integer, i As Integer, cl As Long Dim hw As Long hw = Picture1.hdc Picture1.Refresh getbits kk = 127 For y = 0 To h - 1 For x = 0 To w - 1 cl = GetPixel(hw, x, y) If cl <> 0 Then buff(x, y) = kk imagedata(0, x, h - y) = fire(2, kk) imagedata(1, x, h - y) = fire(1, kk) imagedata(2, x, h - y) = fire(0, kk) End If Next DoEvents Next Label1.Visible = False 'setbits stopall brun(6) = True runme2 End Sub Private Sub Command4_Click() 'Fire on the top of the text Label1.Visible = True Picture1.BackColor = vbBlack Picture1.FontSize = 40 Picture1.CurrentX = (w - Picture1.TextWidth("SMART PLAYER")) / 2 Picture1.CurrentY = (h - Picture1.TextHeight("SMART PLAYER")) / 2 Picture1.Print "SMART PLAYER"
34
Dim x As Integer, y As Integer, i As Integer, cl As Long Dim hw As Long hw = Picture1.hdc 'Picture1.Refresh getbits kk = 127 hit = 0 For y = 0 To h - 1 For x = 0 To w - 1 cl = GetPixel(hw, x, y) If cl <> 0 Then If hit = 0 Then hit = y buff(x, y) = kk imagedata(0, x, h - y) = fire(2, kk) imagedata(1, x, h - y) = fire(1, kk) imagedata(2, x, h - y) = fire(0, kk) End If Next DoEvents Next Label1.Visible = False 'setbits stopall brun(7) = True runme3 End Sub Private Sub Command6_Click() Unload Me End Sub Private Sub Command7_Click() 'Fire inside text Label1.Visible = True
35
Picture1.BackColor = vbBlack Picture1.FontSize = 45 Picture1.CurrentX = (w - Picture1.TextWidth("PLAYER")) / 2 Picture1.CurrentY = (h - Picture1.TextHeight("PLAYER")) Picture1.Print "PLAYER" Picture1.FontSize = 60 Picture1.CurrentX = (w - Picture1.TextWidth("PLAYER")) / 2 Picture1.CurrentY = (h - Picture1.TextHeight("PLAYER")) - 140 Picture1.Print "PLAYER" Picture1.CurrentX = (w - Picture1.TextWidth("SMART")) / 2 Picture1.CurrentY = (h - Picture1.TextHeight("SMART")) - 280 Picture1.Print "SMART" Dim x As Integer, y As Integer, i As Integer, cl As Long Dim hw As Long hw = Picture1.hdc 'Picture1.Refresh getbits kk = 127 For y = 0 To h - 1 For x = 0 To w - 1 cl = GetPixel(hw, x, y) If cl <> 0 Then buff(x, y) = kk imagedata(0, x, h - y) = fire(2, kk) imagedata(1, x, h - y) = fire(1, kk) imagedata(2, x, h - y) = fire(0, kk) End If Next DoEvents Next Label1.Visible = False
36
'setbits stopall brun(4) = True runme7 End Sub Private Sub Command8_Click() 'beauty of the inside text Label1.Visible = True Picture1.BackColor = vbBlack Picture1.FontSize = 45 Picture1.CurrentX = (w - Picture1.TextWidth("PLAYER")) / 2 Picture1.CurrentY = (h - Picture1.TextHeight("PLAYER")) Picture1.Print "PLAYER" Picture1.FontSize = 60 Picture1.CurrentX = (w - Picture1.TextWidth("PLAYER")) / 2 Picture1.CurrentY = (h - Picture1.TextHeight("PLAYER")) - 140 Picture1.Print "PLAYER" Picture1.CurrentX = (w - Picture1.TextWidth("SMART")) / 2 Picture1.CurrentY = (h - Picture1.TextHeight("SMART")) - 280 Picture1.Print "SMART" Dim x As Integer, y As Integer, i As Integer, cl As Long Dim hw As Long hw = Picture1.hdc 'Picture1.Refresh getbits kk = 127 For y = 0 To h - 1 For x = 0 To w - 1 cl = GetPixel(hw, x, y) If cl <> 0 Then
37
buff(x, y) = kk imagedata(0, x, h - y) = fire(2, kk) imagedata(1, x, h - y) = fire(1, kk) imagedata(2, x, h - y) = fire(0, kk) End If Next DoEvents Next 'SavePicture Picture1.Image, App.Path & "\yu.bmp" Label1.Visible = False 'setbits stopall brun(5) = True runme8 End Sub Private Sub Command9_Click() 'Burning text Label1.Visible = True Picture1.BackColor = vbBlack Picture1.FontSize = 45 Picture1.CurrentX = (w - Picture1.TextWidth("PLAYER")) / 2 Picture1.CurrentY = (h - Picture1.TextHeight("PLAYER")) Picture1.Print "PLAYER" Picture1.FontSize = 60 Picture1.CurrentX = (w - Picture1.TextWidth("PLAYER")) / 2 Picture1.CurrentY = (h - Picture1.TextHeight("PLAYER")) - 140 Picture1.Print "PLAYER" Picture1.CurrentX = (w - Picture1.TextWidth("SMART")) / 2 Picture1.CurrentY = (h - Picture1.TextHeight("SMART")) - 280 Picture1.Print "SMART" fx1 = 0 fx2 = 0
38
Dim x As Integer, y As Integer, i As Integer, cl As Long Dim hw As Long hw = Picture1.hdc 'Picture1.Refresh getbits kk = 127 For y = 0 To h - 1 For x = 0 To w - 1 cl = GetPixel(hw, x, y) If cl <> 0 Then If (fx1 = 0) Then fx1 = y fx2 = y buff(x, y) = kk imagedata(0, x, h - y) = fire(2, kk) imagedata(1, x, h - y) = fire(1, kk) imagedata(2, x, h - y) = fire(0, kk) End If Next DoEvents Next Label1.Visible = False 'setbits stopall brun(8) = True runme9 End Sub Private Sub Form_Load() Me.Show w = Picture1.ScaleWidth h = Picture1.ScaleHeight WebBrowser1.Navigate "E:\MUSIC PLAYER\pictures\animatedbar.gif" getbits
39
initialize stopall Me.Show fps = 1 End Sub Sub setbits() Dim bm As BITMAP Dim bmi As BITMAPINFO bmi.bmiHeader.biSize = 45 bmi.bmiHeader.biPlanes = 1 bmi.bmiHeader.biBitCount = 24 bmi.bmiHeader.biCompression = 0 bmi.bmiHeader.biWidth = w bmi.bmiHeader.biHeight = h StretchDIBits Picture1.hdc, 0, 0, w, h, 0, 0, w, h, imagedata(0, 0, 0), bmi, 0, vbSrcCopy Picture1.Refresh End Sub Sub getbits() Dim bm As BITMAP Dim bmi As BITMAPINFO bmi.bmiHeader.biSize = 45 bmi.bmiHeader.biPlanes = 1 bmi.bmiHeader.biBitCount = 24 bmi.bmiHeader.biCompression = 0 Dim bmlen As Long bmlen = Len(bm) GetObject Picture1.Image, bmlen, bm ReDim imagedata(0 To 2, 0 To bm.bmWidth - 1, 0 To bm.bmHeight - 1) ReDim buff(bm.bmWidth - 1, bm.bmHeight - 1) GetDIBits Picture1.hdc, Picture1.Image, 0, bm.bmHeight, imagedata(0, 0, 0), bmi, 0 End Sub
40
Sub initialize() Dim i As Integer For i = 0 To 63 fire(0, i) = i * 4 fire(1, i) = 0 fire(2, i) = 0 Next For i = 64 To 127 fire(0, i) = 255 fire(1, i) = (i - 64) * 4 fire(2, i) = 0 Next For i = 128 To 191 fire(0, i) = 255 fire(1, i) = 255 fire(2, i) = (i - 128) * 4 Next For i = 192 To 255 fire(0, i) = (i - 192) * 4 fire(1, i) = (i - 192) * 4 fire(2, i) = (i - 192) * 4 Next End Sub Sub runme() Dim x As Integer, y As Integer Dim av As Integer Do While brun(0) Randomize For y = (h - 4) To (h - 1)
41
For x = 0 To w - 1 buff(x, y) = 255 * Rnd Next Next For y = (h - 3) To 2 Step -1 For x = 1 To (w - 2) av = 0 + buff(x - 1, y + 1) + buff(x + 1, y + 1) + buff(x, y + 1) + buff(x, y + 2) + buff(x, y + 1) av = av / 5 If av >= 3 Then av = av - 2 buff(x, y) = av imagedata(0, x, h - y) = fire(2, av) imagedata(1, x, h - y) = fire(1, av) imagedata(2, x, h - y) = fire(0, av) Next Next DoEvents setbits fps = fps + 1 Loop End Sub Sub runme1() Dim x As Integer, y As Integer Dim av As Integer Do While brun(1) Randomize For y = (h - 4) To (h - 1) For x = 0 To w - 1 buff(x, y) = 255 * Rnd Next Next For y = (h - 3) To 2 Step -1 For x = 1 To (w - 2)
42
av = 0 + buff(x - 1, y + 1) + buff(x + 1, y + 1) + buff(x, y + 1) av = av / 3 If av >= 3 Then av = av - 2 Else av = Rnd * 255 End If buff(x, y) = av imagedata(0, x, h - y) = fire(2, av) imagedata(1, x, h - y) = fire(1, av) imagedata(2, x, h - y) = fire(0, av) Next Next DoEvents setbits fps = fps + 1 Loop End Sub Sub runme2() Dim x As Integer, y As Integer Dim av As Integer Dim t As Integer Dim k1 As Integer, k2 As Integer k1 = 1 k2 = -1 Do While brun(6) Randomize For y = h + 2 * k2 To (-k2) Step k2 For x = 2 * k1 To (w - 2 * k1) Step k1 av = 0 + buff(x + k1, y) + buff(x - k1, y) + buff(x, y + k2) + buff(x, y - k2) av = av / 4 If av >= 3 Then av = av - Rnd * 15 + 10
43
End If If av < 0 Then av = 0 ElseIf av > 255 Then av = 255 ElseIf av = kk Then av = av - 4 End If If t < 0 Then t = 0 If buff(x, y) <> kk Then buff(x, y) = av Else av = 0 End If imagedata(0, x, h - y) = fire(2, av) imagedata(1, x, h - y) = fire(1, av) imagedata(2, x, h - y) = fire(0, av) Next Next DoEvents setbits fps = fps + 1 Loop End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) stopall Timer1.Enabled = False End End Sub Private Sub Timer1_Timer() Me.Caption = "FPS " & fps fps = 0
44
End Sub
Sub runme3() Dim x As Integer, y As Integer Dim av As Integer Dim t As Integer Do While brun(7) Randomize For y = hit To hit + 1 For x = 0 To w - 2 If buff(x, y) <> 0 Then buff(x, y) = 255 * Rnd Next Next For y = hit To 10 Step -1 For x = 1 To w - 2 av = 0 + buff(x - 1, y + 1) + buff(x + 1, y + 1) + buff(x, y + 1) + buff(x, y + 2) av = av / 4 If av >= 3 Then av = av - 3 End If If av < 0 Then av = 0 ElseIf av > 255 Then av = 255 ElseIf av = kk Then av = av - 4 End If If buff(x, y) <> kk Then buff(x, y) = av Else av = kk End If If buff(x, y) <> kk Then
45
imagedata(0, x, h - y) = fire(2, av) imagedata(1, x, h - y) = fire(1, av) imagedata(2, x, h - y) = fire(0, av) End If Next Next DoEvents setbits fps = fps + 1 Loop End Sub Sub runme5() Dim x As Integer, y As Integer Dim av As Integer Do While brun(2) Randomize For y = (h - 4) To (h - 1) For x = 0 To w - 1 buff(x, y) = 255 * Rnd Next Next For y = (h - 3) To 2 Step -1 For x = 1 To (w - 2) av = 0 + buff(x, y - 1) + buff(x, y + 1) av = av / 2 If av >= 3 Then av = av - 2 Else av = Rnd * 255 End If buff(x, y) = av imagedata(0, x, h - y) = fire(2, av)
46
imagedata(1, x, h - y) = fire(1, av) imagedata(2, x, h - y) = fire(0, av) Next Next DoEvents setbits fps = fps + 1 Loop End Sub Sub runme6() Dim x As Integer, y As Integer Dim av As Integer Dim a As Integer, b As Integer, c As Long Do While brun(3) Randomize For y = (h - 4) To (h - 1) For x = 0 To w - 1 buff(x, y) = 255 * Rnd Next Next For y = (h - 3) To 2 Step -1 For x = 1 To (w - 7) av = 0 + buff(x - 1, y + 1) + buff(x + 1, y + 1) + buff(x, y + 1) + buff(x, y + 2) + buff(x, y + 1) av = av / 5 If av >= 3 Then av = av - 2 Else av = Rnd * 255 End If c=1 c=c*y*w c=x+c-h/5
47
a = c M od w b=c\h buff(a, b) = av imagedata(0, x, h - y) = fire(2, av) imagedata(1, x, h - y) = fire(1, av) imagedata(2, x, h - y) = fire(0, av) Next Next DoEvents setbits fps = fps + 1 Loop End Sub Sub runme7() Dim x As Integer, y As Integer Dim av As Integer Do While brun(4) Randomize For y = (h - 4) To (h - 1) For x = 0 To w - 1 buff(x, y) = 255 * Rnd Next Next For y = (h - 3) To 2 Step -1 For x = 1 To (w - 7) av = 0 + buff(x - 1, y + 1) + buff(x + 1, y + 1) + buff(x, y + 1) av = av / 3 If av >= 3 Then av = av - 1 Else av = Rnd * 255 End If
48
buff(x, y) = av If imagedata(2, x, h - y) <> 0 Then imagedata(0, x, h - y) = fire(2, av) imagedata(1, x, h - y) = fire(1, av) imagedata(2, x, h - y) = fire(0, av) End If Next Next DoEvents setbits fps = fps + 1 Loop End Sub Sub runme8() Dim x As Integer, y As Integer Dim av As Integer Do While brun(5) Randomize For y = (h - 4) To (h - 1) For x = 0 To w - 1 buff(x, y) = 255 * Rnd Next Next For y = (h - 3) To 2 Step -1 For x = 1 To (w - 2) av = 0 + buff(x, y - 1) + buff(x, y + 1) av = av / 2 If av >= 3 Then av = av - 2 Else av = Rnd * 255 End If buff(x, y) = av
49
If imagedata(2, x, h - y) <> 0 Then imagedata(0, x, h - y) = fire(2, av) imagedata(1, x, h - y) = fire(1, av) imagedata(2, x, h - y) = fire(0, av) End If Next Next DoEvents setbits fps = fps + 1 Loop End Sub Sub runme9() Dim x As Integer, y As Integer Dim av As Integer ReDim newarr(w, h) For y = fx1 To fx2 For x = 0 To w - 1 newarr(x, y) = buff(x, y) DoEvents Next Next Do While brun(8) Randomize For y = fx1 To fx2 For x = 0 To w - 1 If newarr(x, y) <> 0 Then buff(x, y) = 255 * Rnd Next Next For y = fx2 To 2 Step -1 For x = 1 To (w - 2) av = 0 + buff(x - 1, y + 1) + buff(x + 1, y + 1) + buff(x, y + 1) av = av / 3
50
av = av - 2 If av <= 0 Then av = 0 If newarr(x, y) <> 127 Then buff(x, y) = av imagedata(0, x, h - y) = fire(2, av) imagedata(1, x, h - y) = fire(1, av) imagedata(2, x, h - y) = fire(0, av) End If Next Next DoEvents setbits fps = fps + 1 Loop End Sub Sub stopall() Dim i As Integer For i = 0 To 9 brun(i) = False Next End Sub
51
rgbGreen As Byte rgbRed As Byte rgbReserved As Byte End Type Public Type BITMAPINFOHEADER '40 bytes biSize As Long biWidth As Long biHeight As Long biPlanes As Integer biBitCount As Integer biCompression As Long biSizeImage As Long biXPelsPerMeter As Long biYPelsPerMeter As Long biClrUsed As Long biClrImportant As Long End Type Public Type BITMAPINFO bmiHeader As BITMAPINFOHEADER bmiColors As RGBQUAD End Type Public Declare Function StretchDIBits Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal wSrcWidth As Long, ByVal wSrcHeight As Long, lpBits As Any, lpBitsInfo As BITMAPINFO, ByVal wUsage As Long, ByVal dwRop As Long) As Long Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any,
53
Source As Any, ByVal Length As Long) Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long Public Declare Function SetPixelV Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
54
55
56
Private Sub Dir1_Click() On Error Resume Next File1.Visible = True File1.FileName = Dir1.Path End Sub Private Sub Dir1_Change() On Error Resume Next File1.Visible = True File1.FileName = Dir1.Path End Sub Private Sub Drive1_Change() On Error Resume Next Dir1.Visible = True Dir1.Path = Drive1.Drive End Sub Private Sub File1_Click() WindowsMediaPlayer1.URL = Dir1.Path & "\" & File1.FileName Drive1.Visible = False Dir1.Visible = False File1.Visible = False End Sub Private Sub Label7_Click() List1.Visible = True Command1.Visible = True End Sub Private Sub Label8_Click() scrn.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\spectrum.jpg") frmAboutBox.Show End Sub
58
Private Sub List1_Click() Select Case (List1.ListIndex) Case 0: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\apple.jpg") Case 1: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\bluesky.jpg") Case 2: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\bollgreen.jpg") Case 3: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\greyworld.jpg") Case 4: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\roboM.jpg") Case 5: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\greenstar.jpg") Case 6: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\violetdream.jpg") Case 7: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\rose.jpg") Case 8: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\violetmode.jpg") Case 9: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\sc01.jpg") Case 10: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\sc02.jpg") Case 11: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\sc03.jpg") Case 12: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\sc04.jpg") Case 13: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\sc05.jpg") Case 14: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\sc06.jpg") Case 15: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\sc07.jpg")
59
Case 16: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\sc08.jpg") Case 17: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\sc09.jpg") Case 18: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\sc10.jpg") Case 19: Picture1.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\sc00.jpg") End Select End Sub Private Sub Timer1_Timer() On Error Resume Next If Timer < ptimer + 0.01 Then Exit Sub Player.Cls For var = 0 To 150 s = Int(Rnd * 50) x(var) = Val(x(var) + s) r = Int(Rnd * 50) y(var) = Val(y(var) + r) If x(var) > Player.ScaleHeight Then x(var) = -1 End If If y(var) > Player.ScaleWidth Then y(var) = -1 End If Player.Circle (x(var), y(var)), 15, QBColor(15) ptimer = Timer Next End Sub Private Sub FlatScrollBar1_Change() On Error GoTo err WindowsMediaPlayer1.settings.volume = FlatScrollBar1.Value FlatScrollBar1.ToolTipText = FlatScrollBar1.Value
60
err: If err Then MsgBox "ERROR: (" & err.Description & ")" err.Clear Reset End Sub Private Sub FlatScrollBar2_Change() On Error GoTo err WindowsMediaPlayer1.settings.balance = FlatScrollBar2.Value - 100 FlatScrollBar2.ToolTipText = FlatScrollBar2.Value - 100 err: If err Then MsgBox "ERROR: (" & err.Description & ")" err.Clear Reset End Sub Private Sub Form_Load() WebBrowser2(0).Navigate "E:\MUSIC PLAYER\pictures\flashingspeaker.gif" WebBrowser2(1).Navigate "E:\MUSIC PLAYER\pictures\flashingspeaker.gif" List1.Visible = False Command1.Visible = False Player.Width = 15360 For var = 0 To 150 x(var) = Player.ScaleHeight * Rnd y(var) = Player.ScaleWidth * Rnd Player.Circle (x(var), y(var)), 10, QBColor(15) Next var List1.AddItem "apple.jpg" List1.AddItem "bluesky.jpg" List1.AddItem "bollgreen.jpg" List1.AddItem "greyworld" List1.AddItem "roboM" List1.AddItem "greenstar" List1.AddItem "violetdream"
61
List1.AddItem "rose" List1.AddItem "violetmode" List1.AddItem "sc01" List1.AddItem "sc02" List1.AddItem "sc03" List1.AddItem "sc04" List1.AddItem "sc05" List1.AddItem "sc06" List1.AddItem "sc07" List1.AddItem "sc08" List1.AddItem "sc09" List1.AddItem "sc10" List1.AddItem "sc00" scrn.Picture = LoadPicture("E:\MUSIC PLAYER\pictures\spectrum.jpg") Drive1.Visible = False Dir1.Visible = False File1.Visible = False Combo1.AddItem "CuteScreen" Combo1.AddItem "Winter" Combo1.AddItem "Car" Combo1.AddItem "Avatar" Combo1.AddItem "Dolphin" Combo1.AddItem "Sunset" Combo1.AddItem "Swirl" Combo1.AddItem "Vortex" Combo1.AddItem "Island" Combo1.AddItem "Spectrum" Combo1.ListIndex = 0 End Sub Private Sub Label1_Click() ' Open Click Drive1.Visible = True End Sub Private Sub Label11_Click() 'Mute Click
62
On Error GoTo err If WindowsMediaPlayer1.settings.mute = False Then WindowsMediaPlayer1.settings.mute = True Label11.Caption = "Sound" ElseIf WindowsMediaPlayer1.settings.mute = True Then WindowsMediaPlayer1.settings.mute = False Label11.Caption = "Mute" End If err: If err Then MsgBox "ERROR: (" & err.Description & ")" err.Clear Reset End Sub Private Sub Label2_Click() ' Play / Pause Click On Error GoTo err If Label2.Caption = "Play" Then Label2.Caption = "Pause" WindowsMediaPlayer1.Controls.play ElseIf Label2.Caption = "Pause" Then Label2.Caption = "Play" WindowsMediaPlayer1.Controls.pause End If err: If err Then MsgBox "ERROR: (" & err.Description & ")" err.Clear Reset End Sub Private Sub Label3_Click() 'Stop Click WindowsMediaPlayer1.Controls.stop Label2.Caption = "Play" End Sub Private Sub Label9_Click() 'Exit Click
63
Unload Me frmAboutBox.Hide End Sub Private Sub Timer2_Timer() Label10.ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) End Sub
64
CONCLUSION
In future we can upgrade this project by considering the below ideas. 1. Use Database to store the Selected File List 2. We can give the provision for if a region of audio / video is selected; only the selected region will play. 3. To quickly play the entire list we can insert one more button Select All before playing.
97
REFERENCES
Software Engineering Concepts Visual Basic 6.0 Music & Images Collected From : : : Ken Elliott, Barry Childs Ted Shell http://www.audiomicro.com/beethoven-music http://www.vaio.com & Some common Websites API Concepts
:
http://www.tannerhelland.com
98
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96