Video file playing method and device, equipment and storage medium
By calculating the loading and rendering time difference of video files and using the countdown to extend the playback time, the problem of incomplete video playback is solved, and the complete playback of video files and excellent playback effects are achieved.
Patent Information
- Application Number
- CN202411813394.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-11
- Publication Date
- 2025-03-18
AI Technical Summary
When existing video playback devices play videos, due to the time required to load and render, the playback time is insufficient, and the last few frames of the screen are not played, which affects the playback effect.
By obtaining the duration of the video file to be played, determining the loading and rendering start time of the video file, calculating the time difference, and using the countdown timer to play the video within the extended countdown time to ensure that the video is played in full.
It realizes the integrity of video playback, avoids the lack of playback, meets the real needs of users, and ensures the playback effect.
Smart Images

Figure CN119653176A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of video, and in particular to a method, device, equipment and storage medium for playing a video file. Background Art
[0002] Nowadays, in some advertising scenes, electronic devices such as advertising machines are used to play video files for promotion. Usually, users upload the video files to be played in the background, calculate the duration of the entire video based on the video file, and automatically set this duration as the playback duration of the current scene, and then use a player such as Sayuri Player (CMS) to play it.
[0003] However, CMS will strictly play according to the playback duration of the scene. However, since it takes a certain amount of time to load and render the video, it will be played according to the playback duration. When it plays to the last moment of the scene, there will often be a problem of missing frames that are not played, which affects the playback effect and is not conducive to meeting the real needs of users. Summary of the invention
[0004] The embodiments of the present application provide a video file playback method, device, equipment and storage medium to solve at least one problem existing in the related art. The technical solution is as follows:
[0005] In a first aspect, an embodiment of the present application provides a method for playing a video file, comprising:
[0006] Obtain a video file to be played, and determine the duration of the video file;
[0007] Determining a start time for loading the video file and determining a start time for rendering the video file;
[0008] Determine a time difference according to the start loading time and the start rendering time;
[0009] Determine the countdown duration of the countdown timer according to the time difference and the duration, and play the video file through a player within the countdown duration;
[0010] When the countdown time is reached, the player stops playing.
[0011] In one implementation, determining the start time of loading the video file includes:
[0012] Load the video file by starting the loading instruction;
[0013] When loading starts, the current time of the system is obtained through the time acquisition instruction as the start time of loading.
[0014] In one implementation, determining the start time of rendering the video file includes:
[0015] Resetting the player through a reset instruction;
[0016] During the loading process, the video path parameter of the video file is obtained and the countdown timer is started, and the duration is set to the default initial duration of the countdown timer;
[0017] The video path parameters are transmitted to the player through the data source setting instruction, so that the player can read the video file according to the video path parameters and render the video file to determine the start rendering time of the video file.
[0018] In one implementation, rendering the video file to determine a start time for rendering the video file includes:
[0019] Execute onInfo by the player, and read the what parameter and constant value in onInfo in real time, wherein the constant value is the value of MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START;
[0020] The what parameter is compared with the constant value in real time. When the what parameter is equal to the constant value, the current time of the system is obtained as the start time of rendering the video file.
[0021] In one implementation, determining the countdown duration of the countdown timer according to the time difference and the duration includes:
[0022] Through sendEmptyMessageDelayed, the default initial duration is extended by utilizing the time difference, and the default initial duration of the countdown timer is updated to obtain the countdown duration.
[0023] In a second aspect, an embodiment of the present application provides a video file playback device, including:
[0024] An acquisition module, used to acquire a video file to be played and determine the duration of the video file;
[0025] A first determining module, used to determine a start time for loading the video file and a start time for rendering the video file;
[0026] A second determination module, configured to determine a time difference according to the start loading time and the start rendering time;
[0027] A playing module, used to determine the countdown duration of the countdown timer according to the time difference and the duration, and play the video file through a player within the countdown duration;
[0028] When the countdown time is reached, the player stops playing.
[0029] In one implementation, the first determining module includes a first unit, and the first unit is configured to:
[0030] Resetting the player through a reset instruction;
[0031] During the loading process, the video path parameter of the video file is obtained and the countdown timer is started, and the duration is set to the default initial duration of the countdown timer;
[0032] The video path parameters are transmitted to the player through the data source setting instruction, so that the player can read the video file according to the video path parameters and render the video file to determine the start rendering time of the video file.
[0033] In one implementation, the first determining module includes a second unit, and the second unit is configured to:
[0034] Execute onInfo by the player, and read the what parameter and constant value in onInfo in real time, wherein the constant value is the value of MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START;
[0035] The what parameter is compared with the constant value in real time. When the what parameter is equal to the constant value, the current time of the system is obtained as the start time of rendering the video file.
[0036] In a third aspect, an embodiment of the present application provides an electronic device, comprising: a processor and a memory, wherein the memory stores instructions, and the instructions are loaded and executed by the processor to implement a method in any one of the above-mentioned embodiments.
[0037] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program. When the computer program is executed, the method in any one of the above-mentioned embodiments is implemented.
[0038] The beneficial effects of the above technical solution include at least:
[0039] By obtaining the video file to be played and determining the length of the video file, determining the start loading time for loading the video file and determining the start rendering time for rendering the video file, determining the time difference according to the start loading time and the start rendering time, determining the countdown duration of the countdown timer according to the time difference and the duration, achieving time compensation, and playing the video file through the player within the countdown duration, it is helpful to avoid omissions during the playback process, ensure the playback effect, and meet the real needs of users.
[0040] The above summary is for illustrative purposes only and is not intended to be limiting in any way. In addition to the illustrative aspects, embodiments and features described above, further aspects, embodiments and features of the present application will be readily apparent by reference to the accompanying drawings and the following detailed description. BRIEF DESCRIPTION OF THE DRAWINGS
[0041] In the accompanying drawings, unless otherwise specified, the same reference numerals throughout the multiple drawings represent the same or similar parts or elements. These drawings are not necessarily drawn to scale. It should be understood that these drawings only depict some embodiments disclosed in the present application and should not be regarded as limiting the scope of the present application.
[0042] Figure 1 This is a schematic diagram of the steps of a method for playing a video file according to an embodiment of the present application;
[0043] Figure 2 This is a structural block diagram of a video file playback device according to an embodiment of the present application;
[0044] Figure 3 This is a structural block diagram of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION
[0045] In the following, only some exemplary embodiments are briefly described. As those skilled in the art will appreciate, the described embodiments may be modified in various ways without departing from the spirit or scope of the present application. Therefore, the drawings and descriptions are considered to be exemplary and non-restrictive in nature.
[0046] In the related art, due to the influence of factors such as the performance of the video playback device, the video size, length, resolution and encoding method, the time required for the video to be loaded from the beginning to the rendering of the first frame is not fixed, and the playback time set in the scene does not include this part of time, so the video playback will be incomplete and the last few frames will not be played. The above problem needs to be solved to ensure the integrity of the video playback.
[0047] Reference Figure 1, a flowchart of a video file playing method according to an embodiment of the present application is shown, and the video file playing method may at least include steps S100-S400:
[0048] S100: Obtain a video file to be played, and determine the duration of the video file.
[0049] S200: Determine a start time for loading a video file and a start time for rendering a video file.
[0050] S300: Determine a time difference according to a loading start time and a rendering start time.
[0051] S400: Determine the countdown duration of the countdown timer according to the time difference and the duration, and play the video file through the player within the countdown duration.
[0052] When the countdown time is reached, the player stops playing.
[0053] The video file playback method of the embodiment of the present application can be executed by a video playback device, or a video playback device in conjunction with a cloud server.
[0054] The technical solution of the embodiment of the present application obtains the video file to be played and determines the length of the video file, determines the start loading time for loading the video file and determines the start rendering time for rendering the video file, determines the time difference according to the start loading time and the start rendering time, determines the countdown duration of the countdown timer according to the time difference and the duration, realizes time compensation, and plays the video file through the player within the countdown duration, which is conducive to avoiding omissions during the playback process, ensuring the playback effect, and meeting the real needs of users.
[0055] In one implementation, a user uploads a video file to be played on a background server, which is received by a video playback device. After obtaining the video file to be played, the video playback device or server can parse and determine the duration of the video file, for example, 15 seconds.
[0056] In one implementation, determining the start time of loading the video file in step S200 includes steps S210-S220:
[0057] S210: Load the video file by starting the loading instruction.
[0058] Optionally, a video player is installed in the video playback device, such as Sayuri player CMS or Android player mMediaPlayer. Usually, when playing with the player, the video playback device will first generate a start loading instruction for calling the start loading startLoad(String dataSource) method to load the video file. The code of the start loading startLoad(String dataSource) method is as follows, where dataSource is the video path parameter of the video file:
[0059] public void startLoad(String dataSource)
[0060] S220. When loading starts, obtain the current time of the system as the start time of loading through a time acquisition instruction.
[0061] Optionally, when calling the startLoad(String dataSource) method to load, the time acquisition method System.currentTimeMillis() is called through the time acquisition instruction to obtain the current time of the system of the video playback device when loading starts, and the current time is used as the start loading time; wherein the current time is assigned to the mTimeStampAtPrepare variable, the starting time point for starting to load the video, in milliseconds: mTimeStampAtPrepare = System.currentTimeMillis().
[0062] In one implementation, determining the start rendering time for rendering the video file in step S200 includes steps S230-S250:
[0063] S230: Reset the player through a reset instruction.
[0064] Optionally, the reset method (reset() method) of the player is called through a reset instruction to reset the player to prevent unnecessary exceptions in the player.
[0065] S240: During the loading process, obtain the video path parameters of the video file and start the countdown timer, and set the duration to the default initial duration of the countdown timer.
[0066] Optionally, during the loading process after the recording starts, the system obtains the video path parameter dataSource of the video file and starts the countdown timer. At this time, the duration is set to the default initial duration of the countdown timer, for example, the duration is 15s.
[0067] S250, transmitting the video path parameters to the player through the data source setting instruction, so that the player can read the video file according to the video path parameters and render the video file to determine the start time of rendering the video file.
[0068] Optionally, the system calls the data source setting method: setDataSource(dataSource) through the data source setting instruction, and transmits the video path parameter dataSource to the player so that the player can read the video file according to the video path parameter. The specific code is:
[0069] mMediaPlayer.reset();
[0070] mMediaPlayer.setDataSource(dataSource)
[0071] Then, the video file is rendered to determine the start time of rendering the video file, including S2501-S2502:
[0072] S2501. Execute onInfo through the player, and read the what parameter and constant value in onInfo in real time.
[0073] Optionally, when the player renders and plays, the player executes onInfo. onInfo has three parameters: mp represents the Android player object, what represents the type of information, and extra represents additional information. The what parameter is used in this application. Executing onInfo reads the what parameter and constant value in onInfo in real time. The constant value is:
[0074] The value of MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START, the code of onInfo is: public boolean onInfo(MediaPlayer mp, int what, int extra).
[0075] S2502: compare the what parameter with the constant value in real time. When the what parameter is equal to the constant value, obtain the current time of the system as the start time of rendering the video file.
[0076] Optionally, the what parameter is compared with a constant value in real time, for example, by determining whether the what parameter is equal to the MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START constant value. If the what parameter is equal to the constant value, the System.currentTimeMillis() method is also used to obtain the current time of the system as the start rendering time for rendering the video file.
[0077] if(MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START==what){
[0078] System.currentTimeMillis() gets the current time of the system and assigns it to the start time of playback (i.e. the start time of rendering) mTimeStampRealPlay variable in milliseconds
[0079] mTimeStampRealPlay=System.currentTimeMillis();
[0080] }
[0081] / / Return value, fixed writing method
[0082] return false
[0083] In one embodiment, the above-determined start rendering time is the time when the actual video file actually starts to play. Therefore, the time difference mTimeCostBeforeStart is determined based on the start loading time and the start rendering time. For example, the start rendering time is subtracted from the start loading time to obtain the time difference: mTimeCostBeforeStart = mTimeStampRealPlay-mTimeStampAtPrepare, for example, the time difference is 1s.
[0084] In one implementation, since the system ultimately needs to play the video file completely, it is necessary to compensate the countdown timer based on the original playback duration. Specifically, the countdown duration of the countdown timer is determined based on the time difference and duration. In the embodiment of the present application, it is first determined whether the countdown timer is equal to empty. If it is not empty, the next step is performed. By sendingEmptyMessageDelayed, the default initial duration is extended by using the time difference, and the default initial duration of the countdown timer is updated, so that the countdown timer obtains a new countdown duration, thereby achieving the purpose of time compensation. The specific code is:
[0085] mTimeHandler.sendEmptyMessageDelayed(MSG_TIMING_MSG,mTimeCostBeforeStart)
[0086] In one embodiment, in step S400, a new countdown duration is determined in the countdown timer, for example, the time difference is 1s and the duration is 15s, and the countdown duration is 16s. Therefore, when the countdown starts, the video file is played by the player within the countdown duration. Even if a loading process is required, the final video file can be played completely to meet the needs of the user. When the countdown duration is finally reached, the player stops playing.
[0087] According to the method of the embodiment of the present application, when the countdown time is reached, the player stops playing. At this time, if the user has uploaded several video files, the playback device immediately starts loading the next video file to achieve seamless connection, ensure the continuity of playback, and meet the user's needs for continuous playback of multiple videos.
[0088] Reference Figure 2 , shows a structural block diagram of a video file playback device according to an embodiment of the present application, the device may include:
[0089] The acquisition module is used to acquire the video file to be played and determine the duration of the video file;
[0090] A first determination module is used to determine a start time for loading a video file and a start time for rendering a video file;
[0091] A second determination module is used to determine the time difference according to the start loading time and the start rendering time;
[0092] The playback module is used to determine the countdown duration of the countdown timer according to the time difference and the duration, and to play the video file through the player within the countdown duration;
[0093] When the countdown time is reached, the player stops playing.
[0094] Optionally, the first determining module includes a first unit, and the first unit is configured to:
[0095] Reset the player through the reset command;
[0096] During the loading process, the video path parameters of the video file are obtained and the countdown timer is started, and the duration is set to the default initial duration of the countdown timer;
[0097] The video path parameters are transmitted to the player through the data source setting instruction, so that the player can read the video file according to the video path parameters and render the video file to determine the start rendering time of the video file.
[0098] Optionally, the first determining module further includes a second unit, and the second unit is configured to:
[0099] Execute onInfo through the player, read the what parameter and constant value in onInfo in real time. The constant value is the value of MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START;
[0100] The what parameter is compared with the constant value in real time. When the what parameter is equal to the constant value, the current time of the system is obtained as the start time of rendering the video file.
[0101] The functions of each module in each device in the embodiments of the present application can be found in the corresponding description in the above method, and will not be repeated here.
[0102] Reference Figure 3 , shows a structural block diagram of an electronic device according to an embodiment of the present application, the electronic device includes: a memory 310 and a processor 320, the memory 310 stores instructions that can be run on the processor 320, and the processor 320 loads and executes the instructions to implement the video file playback method in the above embodiment. The number of the memory 310 and the processor 320 can be one or more.
[0103] In one embodiment, the electronic device also includes a communication interface 330 for communicating with external devices and performing data exchange transmission. If the memory 310, the processor 320 and the communication interface 330 are implemented independently, the memory 310, the processor 320 and the communication interface 330 can be interconnected through a bus and complete mutual communication. The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 3 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.
[0104] Optionally, in a specific implementation, if the memory 310, the processor 320 and the communication interface 330 are integrated on a chip, the memory 310, the processor 320 and the communication interface 330 can communicate with each other through an internal interface.
[0105] An embodiment of the present application provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the video file playback method provided in the above embodiment.
[0106] An embodiment of the present application also provides a chip, which includes a processor for calling and executing instructions stored in the memory from the memory, so that a communication device equipped with the chip executes the method provided by the embodiment of the present application.
[0107] An embodiment of the present application also provides a chip, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected via an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute the method provided in the embodiment of the application.
[0108] It should be understood that the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor supporting the advanced RISC machines (ARM) architecture.
[0109] Further, optionally, the above-mentioned memory may include a read-only memory and a random access memory, and may also include a non-volatile random access memory. The memory may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may include a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may include a random access memory (RAM), which is used as an external cache. By way of example but not limitation, many forms of RAM are available. For example, static RAM (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM) and direct rambus RAM (DR RAM).
[0110] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function according to the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
[0111] In the description of this specification, the description with reference to the terms "one embodiment", "some embodiments", "example", "specific example" or "some examples" means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present application. Moreover, the described specific features, structures, materials or characteristics may be combined in any one or more embodiments or examples in a suitable manner. In addition, those skilled in the art may combine and combine different embodiments or examples described in this specification and the features of different embodiments or examples, unless they are contradictory.
[0112] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Therefore, a feature defined as "first" or "second" may explicitly or implicitly include at least one of the features. In the description of this application, the meaning of "plurality" is two or more, unless otherwise clearly and specifically defined.
[0113] Any process or method description in the flow chart or otherwise described herein can be understood to represent a module, fragment or portion of a code including one or more executable instructions for implementing the steps of a specific logical function or process. And the scope of the preferred embodiment of the present application includes other implementations, in which the functions may not be performed in the order shown or discussed, including in a substantially simultaneous manner or in a reverse order according to the functions involved.
[0114] The logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as an ordered list of executable instructions for implementing logical functions, which can be embodied in any computer-readable medium for use by an instruction execution system, apparatus or device (such as a computer-based system, a system including a processor or other system that can fetch instructions from an instruction execution system, apparatus or device and execute instructions), or used in combination with these instruction execution systems, apparatuses or devices.
[0115] It should be understood that the various parts of the present application can be implemented with hardware, software, firmware or a combination thereof. In the above embodiments, multiple steps or methods can be implemented with software or firmware stored in a memory and executed by a suitable instruction execution system. All or part of the steps of the above embodiment method can be completed by instructing the relevant hardware through a program, which can be stored in a computer-readable storage medium, and when the program is executed, it includes one of the steps of the method embodiment or a combination thereof.
[0116] In addition, each functional unit in each embodiment of the present application can be integrated into a processing module, or each unit can exist physically separately, or two or more units can be integrated into one module. The above-mentioned integrated module can be implemented in the form of hardware or in the form of a software functional module. If the above-mentioned integrated module is implemented in the form of a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. The storage medium can be a read-only memory, a disk or an optical disk, etc.
[0117] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of various changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
Claims
1. A video file playing method, characterized in that: include: Obtain a video file to be played, and determine the duration of the video file; Determine a start time for loading the video file and a start time for rendering the video file; Determine a time difference according to the start loading time and the start rendering time; Determine the countdown duration of the countdown timer according to the time difference and the duration, and play the video file through a player within the countdown duration; When the countdown time is reached, the player stops playing.
2. The video file playing method according to claim 1, characterized in that: The step of determining the start time of loading the video file comprises: Load the video file by starting the loading instruction; When loading starts, the current time of the system is obtained through the time acquisition instruction as the start time of loading.
3. The video file playing method according to claim 1 or 2, characterized in that: The step of determining the start time of rendering the video file comprises: Resetting the player through a reset instruction; During the loading process, the video path parameter of the video file is obtained and the countdown timer is started, and the duration is set to the default initial duration of the countdown timer; The video path parameters are transmitted to the player through the data source setting instruction, so that the player can read the video file according to the video path parameters and render the video file to determine the start rendering time of the video file.
4. The video file playing method according to claim 3, characterized in that: The step of rendering the video file to determine a start time of rendering the video file includes: Execute onInfo by the player, and read the what parameter and constant value in onInfo in real time, wherein the constant value is the value of MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START; The what parameter is compared with the constant value in real time. When the what parameter is equal to the constant value, the current time of the system is obtained as the start time of rendering the video file.
5. The video file playing method according to claim 3, characterized in that: Determining the countdown duration of the countdown timer according to the time difference and the duration includes: Through sendEmptyMessageDelayed, the default initial duration is extended by utilizing the time difference, and the default initial duration of the countdown timer is updated to obtain the countdown duration.
6. A video file playing device, characterized in that: include: An acquisition module, used to acquire a video file to be played and determine the duration of the video file; A first determining module, used to determine a start time for loading the video file and a start time for rendering the video file; A second determination module, configured to determine a time difference according to the start loading time and the start rendering time; A playing module, used to determine the countdown duration of the countdown timer according to the time difference and the duration, and play the video file through a player within the countdown duration; When the countdown time is reached, the player stops playing.
7. The video file playback device according to claim 6, characterized in that: The first determining module includes a first unit, and the first unit is used to: Resetting the player through a reset instruction; During the loading process, the video path parameter of the video file is obtained and the countdown timer is started, and the duration is set to the default initial duration of the countdown timer; The video path parameters are transmitted to the player through the data source setting instruction, so that the player can read the video file according to the video path parameters and render the video file to determine the start rendering time of the video file.
8. The video file playback device according to claim 7, characterized in that: The first determining module includes a second unit, and the second unit is configured to: Execute onInfo by the player, and read the what parameter and constant value in onInfo in real time, wherein the constant value is the value of MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START; The what parameter is compared with the constant value in real time. When the what parameter is equal to the constant value, the current time of the system is obtained as the start time of rendering the video file.
9. An electronic device, characterized in that: include: A processor and a memory, wherein the memory stores instructions, and the instructions are loaded and executed by the processor to implement the method according to any one of claims 1 to 5.
10. A computer-readable storage medium, wherein a computer program is stored in the computer-readable storage medium, and when the computer program is executed, the method according to any one of claims 1 to 5 is implemented.